我有一个SQL表,
Card_A | Card_B | power
-----------+---------------+-------
3 | 1 | 9
2 | 3 | 9
2 | 3 | 4
我想用sum(power)
和Card_A
的DISTINCT值来Card_B
。当Card_A = 2
和Card_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解决方案也将被接受。
答案 0 :(得分:5)
我认为您需要使用GROUP BY而不是DISTINCT:
/Volumes/Drive/file.whatever
这应该给您带来您想要的结果。
DISTINCT会在结果集中找到唯一记录,但是并不能正确地求和。
使用GROUP BY将创建您指定的列的组(在本例中为card_a和card_b),并且将为每个组计算SUM。