在mysql中选择不同的对,以及第三个值的总和

时间:2017-06-23 07:44:11

标签: mysql sql

我试图实现以下目标: 在具有三个值的表中,对于两列中每个不同的值组合,我不想对第三列中的值求和。

例如

下表:

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()的简单组合,但是没有 - 似乎无法取得任何进展。 将它与子查询结合起来也很困难。 已经提出了各种类似但不完全相同的问题。但不完全一样,解决方案也不起作用。

任何人都可以帮我解决这个看似简单的问题吗?

3 个答案:

答案 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;