Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
user_idフィールドと。を含むテーブルがありますvotes。このvotesフィールドは、1賛成票または反対票のいずれかです0。
user_id
votes
1
0
私がやりたいのは、特定のユーザーの1つのクエリに合計賛成票と合計反対票を表示することです。
なんとかしてこれを実現できるのではないかと思っていたのですが、どういうわけか関数GROUP BYで使えるのかわかりません。SUM
GROUP BY
SUM
GROUP BY複数のユーザーの投票数が必要な場合にのみ必要になります。1人のユーザーの場合、WHERE句を指定するだけで済みます。
WHERE
SELECT SUM(votes=1) AS upvotes, SUM(votes=0) AS downvotes FROM my_table WHERE user_id = ?
余談ですが、正味の投票数を簡単に計算できるように、反対票を-1(ではなく)として保存することを検討することをお勧めします。0SUM(votes)
-1
SUM(votes)