select * from foo; name | value ------+------- foo | -10 foo | -6 foo | 12 foo | 34 bar | 6 bar | 23 bar | 76 rat | -6 rat | -60 (9 rows) #### select name, sum(value) as value from foo group by name order by abs(sum(value)) desc; name | value ------+------- bar | 105 rat | -66 foo | 30 (3 rows)