私のテーブルには、さまざまなアイテムに対するユーザーの投票が含まれています。次の列があります。
id, user_id, item_id, vote, utc_time
idのみが一意のフィールドであり、user_idとutc_timeの組み合わせもおそらく一意です。ただし、ユーザーは任意のアイテムに何度でも投票できます。
投票は数値ではなく、いくつかの可能な値 (「ひどい」、「悪い」、「良い」、「優れた」など) のいずれかを持ちます。
特定の#item#に対して、最後の投票を「非常に良い」、「良い」などと投票したユーザーの数を数える必要があります。したがって、可能な投票値が 4 つしかないと仮定すると、次の 4 つのレコードを取得する必要があります。田畑:
vote, count_of_users
ユーザーの最後の投票だけでなく、すべての投票をカウントする方法を理解しています。
SELECT vote, COUNT(id) FROM votes WHERE item_id=#item# GROUP BY vote;
しかし、各ユーザーの utc_time = MAX(utc_time) の投票のみをカウントする方法がわかりません...助けてくれてありがとう。
この質問は私の前の質問に関連しています:サブクエリなしで既知の他のいくつかの列に対してMAX(列)で1つの行を選択してください