【问题标题】:MySQL GROUP BY quantityMySQL GROUP BY 数量
【发布时间】:2010-07-09 14:25:53
【问题描述】:

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 表达式中得到期望?

【问题讨论】:

    标签: sql mysql group-by aggregate-functions


    【解决方案1】:
    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
    

    【讨论】:

      【解决方案2】:

      您需要以下行中的查询:

      SELECT CommentID,
          SUM(IF(VoteValue > 0, 1, 0)) AS Plus,
          SUM(IF(VoteValue < 0, 1, 0)) AS Minus
      FROM yourTable
      GROUP BY CommentID
      ORDER BY CommentID
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-08
        • 1970-01-01
        相关资源
        最近更新 更多