我有一张看起来像这样的表:
id value 1 0 1 1 1 2 1 0 1 1 2 2 2 1 2 1 2 0 3 0 3 2 3 0
现在,对于每个id,我要计算0和1的出现次数以及该ID的出现次数(该值可以是任何整数),因此最终结果应如下所示:
id
id n0 n1 total 1 2 2 5 2 1 2 4 3 2 0 3
我设法得到与该语句的第一行和最后一行:
SELECT id, COUNT(*) FROM mytable GROUP BY id;
但是我从这里有点迷失了。在没有大量声明的情况下如何实现这一目标的任何指示?
使用MySQL,您可以使用SUM(condition):
SUM(condition)
SELECT id, SUM(value=0) AS n0, SUM(value=1) AS n1, COUNT(*) AS total FROM mytable GROUP BY id
在sqlfiddle上看到它。