我有一个看起来像这样的表:
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
Run Code Online (Sandbox Code Playgroud)
现在对于每一个id,我想计算0和1的出现次数以及该ID的出现次数(该值可以是任何整数),因此最终结果应如下所示:
id n0 n1 total
1 2 2 5
2 1 2 4
3 2 0 3
Run Code Online (Sandbox Code Playgroud)
我设法得到了这句话的第一行和最后一行:
SELECT id, COUNT(*) FROM mytable GROUP BY id;
Run Code Online (Sandbox Code Playgroud)
但我有点迷失在这里.如果没有一个巨大的声明如何实现这一点的任何指针?
egg*_*yal 33
使用MySQL,您可以使用SUM(condition):
SELECT id, SUM(value=0) AS n0, SUM(value=1) AS n1, COUNT(*) AS total
FROM mytable
GROUP BY id
Run Code Online (Sandbox Code Playgroud)
在sqlfiddle上看到它.