想象一下这个数据库结构:
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`correct` tinyint(1) NOT NULL DEFAULT '0'
我想在一个查询中获取所有条目的计数correct = 1
,以及所有条目的计数。correct = 0
我该怎么做呢?
想象一下这个数据库结构:
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`correct` tinyint(1) NOT NULL DEFAULT '0'
我想在一个查询中获取所有条目的计数correct = 1
,以及所有条目的计数。correct = 0
我该怎么做呢?
使用 GROUP BY 应该可以解决问题:
SELECT correct, COUNT(*) FROM table GROUP BY correct;
select count(case when correct = 0 then 1 end) as ZeroCount,
count(case when correct = 1 then 1 end) as OneCount
from MyTable
如果您想要一行中的计数:
SELECT SUM(correct=0) as number_of_zeros,SUM(correct=1) as number_of_ones
FROM table;
如果您希望它们在多行中:
SELECT correct,COUNT(*)
FROM table
GROUP BY correct;