获取sql中不同值的总和并在记录中显示

dfuffjeb  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(389)

我有一个sql表,

Card_A    | Card_B        | power 
-----------+---------------+-------
 3         | 1             |     9
 2         | 3             |     9
 2         | 3             |     4

我想 sum(power) 具有明显的价值 Card_A 以及 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解决方案也将被接受。

zbdgwd5y

zbdgwd5y1#

我认为您需要使用group by而不是distinct:

SELECT card_a, card_b, SUM(power)
FROM foo
GROUP BY card_a, card_b;

这会给你你想要的结果。
distinct将在结果集中找到唯一的记录,但它不能正确地汇总值。
使用GROUPBY将创建由您指定的列组成的组(在本例中为CARDA和CARDB),并且将为每个组计算总和。

相关问题