with t as( select distinct t.goods_id id, name, weight, sum(count) over(partition by name) total from goods g right join trans t on g.id=t.goods_id ) select * from t where total>20 and weight <50 order by id
with t as( select distinct t.goods_id id, name, weight, sum(count) over(partition by name) total from goods g right join trans t on g.id=t.goods_id ) select * from t where total>20 and weight <50 order by id