select b.id, name, weight, cnt as total
from (
    select goods_id, sum(count) as cnt
    from trans
    group by goods_id
) a join goods b on a.goods_id=b.id
where cnt>20 and weight<50
order by b.id