2010-07-09 9 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

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