select count(col1='aaa' or null) from table_name
上記SQLで、col1列が'aaa'であるレコード数を求められる。
これはcount関数はnullでないレコード数を数えており、「count(col1='aaa' or null)」は「count(case when col1='aaa' then true else null end)」と同じ意味であるために成立している。
「col1='aaa'」の評価結果はtrue/false/nullになる可能性があるが、それぞれの場合で「or null」の演算をすると結果は以下のようになる。
count(true or null) → count(true) count(false or null) → count(null) count(null or null) → count(null)
つまり条件がtrueの場合だけをカウントできる。