[英]MYSQL case statement with sum query
不知道這是否可能-但我正在嘗試執行以下操作
vote_id (primary_key)
question_id
user_id
vote_count
這基本上存儲了用戶對特定問題的所有投票
現在,在一個查詢中,我就有可能獲得總投票數並檢查特定用戶是否投票。
這些內容-假設user_id 10
SELECT sum(vote),
(
CASE
WHEN (user_id = 10)
THEN user_id
ELSE NULL
END
) user_id
FROM vote_question
GROUP BY course_question_id
這顯然行不通。
我期望的是特定用戶是否已投票-他的user_id應該與投票計數一起返回-如果他未投票-返回null
謝謝
那將是:
SELECT
SUM(vote),
COUNT(IF(user_id = 10, 1, NULL)) AS has_user_id_10,
FROM
vote_question
GROUP BY
course_question_id
-如果ID為10的用戶投票,則has_user_id_10
大於零,否則為零;否則,結果為零。 可能是您想要嚴格的1
或0
,然后將其替換為
COUNT(IF(user_id = 10, 1, NULL))>0 AS has_user_id_10
請嘗試這個-
select user_id, vote_count
from
(
select sum(vote) vote_count ,user_id, course_question_id from vote_question group by user_id, course_question_id
)
where vote_count <>0;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.