NULLABLEのカラムにNULLを含んだ数をCOUNT
で取得したい場合、真っ先にCOUNT(カラム名)の書き方がパッと浮かぶ人が多いと思います。
実際に、NULLABLEのカラムをCOUNT(カラム名)
でSQLを実行すると、期待したCOUNTの数値と異なります。
この問題を解決するには、COUNT(*)
にする必要があります。
基本的な書き方としては、下記のようになります。
SELECT
COUNT(*)
FROM
テーブル名
;
HAVING
句を用いてCOUNT
したクエリの一例も載せてみました。
SELECT
カラム名
FROM
テーブル名
HAVING
COUNT(*) = COUNT(カラム名)
;
ここ最近実務でハマってしまったので、忘備録としてまとめました。