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_A和Card_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解决方案也将被接受.
我认为你需要使用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.