次のデータベース構造を想像してください。
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`correct` tinyint(1) NOT NULL DEFAULT '0'
を含むすべてのエントリの数とcorrect = 1
、を含むすべてのエントリの数を1つのクエリで取得したいと考えています。correct = 0
どうすればいいですか?
次のデータベース構造を想像してください。
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`correct` tinyint(1) NOT NULL DEFAULT '0'
を含むすべてのエントリの数とcorrect = 1
、を含むすべてのエントリの数を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
1行でカウントしたい場合:
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;