繁体   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