select 
t.id,t.name,t.weight,t1.counts
from goods t
right join 
(select distinct goods_id, sum(count)over(partition by goods_id) counts
 from trans
) t1
on t.id=t1.goods_id
where t.weight<50 and t1.counts >20
order by 1