我有一个SQL表,
Card_A | Card_B | power
-----------+---------------+-------
3 | 1 | 9
2 | 3 | 9
2 | 3 | 4
我想使用Card_A
和Card_B
的不同值进行sum(power)
。当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解决方案也将被接受。
发布于 2018-07-03 07:48:05
我认为您需要使用GROUP BY而不是DISTINCT:
SELECT card_a, card_b, SUM(power)
FROM foo
GROUP BY card_a, card_b;
这应该会给你你想要的结果。
DISTINCT将在结果集中找到唯一的记录,但它不会正确地对值进行求和。
使用GROUP BY将创建由您指定的列组成的组(在本例中为card_a和card_b),并且将计算每个组的总和。
https://stackoverflow.com/questions/51144920
复制相似问题