概要
複数の条件のCountを一回のSQL発行で取得したい場合がある。
例えば、ユーザマスタから
全ユーザ・男性ユーザ・女性ユーザのそれぞれの数を取得したい場合などだ。
そのような場合に使えるTipsを書く。
※SQLite3で検証。
サンプルコード
CountTags.sql
SELECT
COUNT(*),
COUNT(gender = 'm' OR null),
COUNT(gender = 'f' OR null)
FROM
m_user
;
解説
COUNTはNULL以外の数をカウントする。
そして、ORは「false OR null -> null」かつ「true OR null -> true」となる。