2010-07-09 88 views
2

MySQL表是這樣的(VoteID是PK):MySQL的GROUP BY量

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表達式中獲得所需?

回答

4
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 
+0

當然 「CASE」 :)謝謝:) – x17az 2010-07-09 14:33:06

0

您需要的線路查詢:

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 
+0

非常感謝你:) – x17az 2010-07-09 14:34:02