簡體   English   中英

帶總和查詢的MYSQL案例語句

[英]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大於零,否則為零;否則,結果為零。 可能是您想要嚴格的10 ,然后將其替換為

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM