select s.goods_id, goods.name, goods.weight, total from
(select goods_id, sum(count) total
from trans 
group by goods_id having sum(count)>20) s
left join goods on s.goods_id=goods.id
where goods.weight<50
order by s.goods_id