我想根据以下条件对列值求和
USERID | QUERYID | UPVOTE | DOWNVOTE
1 | 15 | 1 | 0
0 | 15 | 0 | -1
6 | 15 | 0 | -1
1 | 7 | 1 | 0
8 | 7 | 1 | 0
我有兴趣获得此要求的结果,例如 对于 QUERYID = 15 ,它应该返回 -1 作为 (SUM(UPVOTE) + SUM(DOWNVOTE)) 对于 QUERYID = 7 ,它应该使用与上面相同的逻辑给我 2 。 我尝试过以下方式
从“MY_TABLE”中选择 (SUM(UPVOTE)+ SUM(DOWNVOTE)) 作为“TOTAL”,其中“QUERYID”位于 (15, 7)';
但是给我的是所有列的总和以及两个 queryId 的组合结果。
最佳答案
您需要一个 group by
子句来为每个 queryid
的唯一值生成单独的结果:
SELECT (SUM(upvote) + SUM(downvote)) AS "TOTAL"
FROM mytable
-- Possibly also add a where clause here if you only want to do this for some queryids
GROUP BY queryid
关于sql - 根据条件求和sql中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50674550/