在SQL中获取DISTINCT值的总和并显示在记录中

时间:2018-07-02 23:44:35

标签: mysql sql postgresql

我有一个SQL表,

 Card_A    | Card_B        | power 
-----------+---------------+-------
 3         | 1             |     9
 2         | 3             |     9
 2         | 3             |     4

我想用sum(power)Card_A的DISTINCT值来Card_B。当Card_A = 2Card_B = 3时,有两个相同的功效值,分别为9和4。输出应为

 Card_A    | Card_B        | power 
-----------+---------------+-------
 3         | 1             |     9
 2         | 3             |     13

我尝试过此SQL查询

SELECT DISTINCT card_A, card_B, sum(power) FROM foo ;

我正在使用POstgresql。 MySQL解决方案也将被接受。

1 个答案:

答案 0 :(得分:5)

我认为您需要使用GROUP BY而不是DISTINCT:

/Volumes/Drive/file.whatever

这应该给您带来您想要的结果。

DISTINCT会在结果集中找到唯一记录,但是并不能正确地求和。

使用GROUP BY将创建您指定的列的组(在本例中为card_a和card_b),并且将为每个组计算SUM。