本题思路较为简单,sum()函数 + join连接

select g.id,g.name,g.weight,t.s from goods g join   # 将goods表同表t按商品id连接
(select goods_id gi,sum(count) s
from trans group by gi) t  # 将商品id以及该商品的购买总数量建为表t
on g.id = t.gi
where g.weight < 50   # 筛选重量超过50g的商品
and t.s > 20   # 筛选购买总数超过20次的商品
order by g.id   # 按商品id升序排列