sql - MySQL GROUP BY 数量

标签 sql mysql group-by aggregate-functions

MySQL表是这样的(VoteID是PK):

VoteID  VoteValue CommentID
1         -1         1
2         -1         1
3          1         1
4         -1         1
5          1         2
6          1         2
7         -1         2

我需要一个结果:

CommentID    Plus    Minus
    1          1      3 
    2          2      1 

按 CommentID 分组的“优点”总和、“缺点”总和 是否可以通过一个 SQL 表达式获得所需的结果?

最佳答案

SELECT 
    CommentID,
    SUM(CASE WHEN VoteValue > 0 THEN 1 ELSE 0 END) AS PLUS,
    SUM(CASE WHEN VoteValue < 0 THEN 1 ELSE 0 END) AS MINUS

FROM 
    mytable

GROUP BY 
    CommentID

关于sql - MySQL GROUP BY 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3213549/

相关文章:

sql - 如何解决 Redshift 错误 : "Missing data for not-null field"?

mysql:将一张表中的字段分别分组

mysql - 在大型 MySQL 表中修剪一列数据的最快方法

mysql - 使 UNIQUE KEY 与查询相关

mysql - 避免包含 group by 的嵌套子查询

mysql - 4 表连接,以便每个公司只给出 1 个响应,而不是每个事件的结果

mysql - 获取多个求和值的最大值

Mysql 同表中的匹配和计数

jquery - 复杂4个链表MYSQL查询

mysql - 在 CREATE TABLE 中使用完全限定表名的任何方式