article_vote table
+------------+------+
| article_id | vote |
+------------+------+
| 1 | 3 |
| 1 | 1 |
| 1 | -1 |
| 1 | -2 |
+------------+------+
MySQL 5.5 では、上記の表から 2 つの結果を返そうとしています。1. すべての反対票の合計値。2. すべての賛成票の合計値。したがって、正は4、負は-3にする必要があります。投票フィールドに NULL 値はありません。
この SQL は意図したとおりに機能しません。
SELECT vote,
SUM(vote > 0) AS positive,
SUM(vote < 1) AS negative
FROM article_vote
WHERE vote_article_id = 50
GROUP BY vote
上記のデータセットで使用すると、次のように返されます。
Array ( [vote] => -22 [positive] => 0 [negative] => 1 )
どこが間違っていますか?