Mysql 获取SQL中不同值的总和,并将其显示在记录中

Mysql 获取SQL中不同值的总和,并将其显示在记录中,mysql,sql,postgresql,Mysql,Sql,Postgresql,我有一个SQL表 Card_A | Card_B | power -----------+---------------+------- 3 | 1 | 9 2 | 3 | 9 2 | 3 | 4 我想用Card\u A和Card\u B的不同值进行sum(power)。当卡_A=2和卡_B=3时,有两个相同的功率值,分别

我有一个SQL表

 Card_A    | Card_B        | power 
-----------+---------------+-------
 3         | 1             |     9
 2         | 3             |     9
 2         | 3             |     4
我想用
Card\u A
Card\u B
的不同值进行
sum(power)
。当
卡_A=2
卡_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解决方案也将被接受。

我认为您需要使用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),并将计算每个组的总和。

我认为您需要使用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),并将计算每个组的总和