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

Din*_*uja 1 mysql sql postgresql

我有一个SQL表,

 Card_A    | Card_B        | power 
-----------+---------------+-------
 3         | 1             |     9
 2         | 3             |     9
 2         | 3             |     4
Run Code Online (Sandbox Code Playgroud)

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

 Card_A    | Card_B        | power 
-----------+---------------+-------
 3         | 1             |     9
 2         | 3             |     13
Run Code Online (Sandbox Code Playgroud)

这个SQL查询,我试过,

SELECT DISTINCT card_A, card_B, sum(power) FROM foo ;
Run Code Online (Sandbox Code Playgroud)

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

bbr*_*umm 5

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

SELECT card_a, card_b, SUM(power)
FROM foo
GROUP BY card_a, card_b;
Run Code Online (Sandbox Code Playgroud)

这应该会给你你想要的结果.

DISTINCT将在结果集中找到您的唯一记录,但它不会正确地汇总值.

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