我试图实现以下目标: 在具有三个值的表中,对于两列中每个不同的值组合,我不想对第三列中的值求和。
例如
下表:
mysql> select * from test;
+------+------+------+
| A | B | num |
+------+------+------+
| e | f | 34 |
| e | f | 45 |
| g | h | 22 |
| a | f | 55 |
| d | g | 66 |
| e | f | 67 |
| a | f | 88 |
| e | g | 36 |
| d | g | 44 |
+------+------+------+
我想:
+------+------+
| A | B |
+------+------+
| e | f | 146
| g | h | 22
| a | f | 143
| d | g | 110
| e | g | 36
+------+------+
我最初认为这将是DISTINCT和SUM()的简单组合,但是没有 - 似乎无法取得任何进展。 将它与子查询结合起来也很困难。 已经提出了各种类似但不完全相同的问题。但不完全一样,解决方案也不起作用。
任何人都可以帮我解决这个看似简单的问题吗?
答案 0 :(得分:1)
使用group by
。
select A,B, sum(num) from test group by A,B;
答案 1 :(得分:0)
请继续:
select sum(num),col1,col2 from table group by col1,col2
答案 2 :(得分:0)
尝试此查询 -
SELECT A
,B
,Sum(Number) AS Total
FROM TableName
GROUP BY A, B
ORDER BY A, B;