SUM
特定のユーザーがこのアイテムに投票したかどうかを返しながら、特定のアイテムに賛成票と反対票を投じる方法がわかりません。
ここに私の投票表があります:
item_id vote voter_id
1 -1 joe
1 1 bob
1 1 tom
3 1 bob
item_id=1
表示したいデータは次のとおりです。
ページを見ている場合Joe
:
total up votes: 2
total down votes: 1
my_vote: -1
Bob
:
total up votes: 2
total down votes: 1
my_vote: 1
これが私のコードです:
SELECT MAX(CASE WHEN voter_id = 'joe' and vote=1 THEN 1
WHEN voter_id = 'joe' and vote='-1' THEN -1
ELSE 0 END)
AS my_vote, item_id, sum(vote=1) yes, sum(vote='-1') no
FROM Votes
WHERE item_id=1
問題は、関数と(ジョーのシナリオ)my_vote=0
を使用する場合です。同様に、MIN 関数と(ボブのシナリオ) を使用するとします。MAX
vote=-1
my_vote=0
vote=1
考え?