SQL-Tips。複数の条件のCountを一回で取得する。


概要

複数の条件の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」となる。