样本记录:

examid      setcode     answer
-------     --------   --------
10            A           A
10            A           B
10            A           X
10            B           A
10            B           B
10            B           C


我试图按答案是X的setcode查找计数组。
我尝试了以下查询:

SELECT setCode,COUNT(answer) FROM mcq_answer WHERE examid=10 AND answer='X' GROUP BY setCode


这将返回以下结果:

setcode     count
-------     --------
A            1


但我正在寻找以下内容:

setcode     count
-------    --------
  A           1
  B           0


Setcode在这里是动态的。我只提到了A和B。可能有更多的setocdes,例如C,D,E,F等。我该怎么做。我正在使用MySQL

最佳答案

您可以使用SUM + IF获得以下结果:

SELECT `setCode`, SUM(if (`answer`='X', 1,0)) as answer
FROM `mcq_answer`
WHERE examid=10
GROUP BY `setcode`

关于mysql - 当MySQL分组中不满足条件时显示计数0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47852299/

10-12 14:26
查看更多