我有一个小的SQL问题 - 我经常这样做:P
我如何只返回所有列中的最高总和金额?
+-------+------+
| TYPE | VAL | Dog sums to 6
|-------+------| Frog sums to 5
| Cat | 2 | Cat sums to 5
|-------|------|
| Dog | 3 |
|-------|------|
| Dog | 3 |
|-------|------|
| Cat | 2 |
|-------|------|
| Cat | 1 |
|-------|------|
| Frog | 5 |
+-------+------+
例如,从上表我只想返回 -
+-------+------+
| TYPE | VAL |
|-------+------|
| Dog | 6 |
+-------+------+
如何对所有列求和,然后返回具有最高求和值的列?
感谢您的时间
答案 0 :(得分:4)
使用group by
计算值,然后使用order by
和limit
来获得您想要的值:
select type, sum(val) as sumval
from table t
group by type
order by sumval desc
limit 1;