【ORACLE】COUNTを使わずに列が持つNULL値の個数を取得するSQL

ここではORACLEデータベースで、表のある列が持つNULL値の個数を取得する方法を紹介します。

テーブルの列の最大値や最小値は、DBA_TAB_COLUMNSを参照することで確認できます。

列の最大値や最小値を参照する方法は↓で紹介していますので参考にしてください。
>>【ORACLE】MAXやMINを使わずに最大値と最小値を取得するSQL

DBA_TAB_COLUMNSを使ったSQLサンプル

DBA_TAB_COLUMNSのNUM_NULLS列にNULL値の個数を持っているのでSELECTして取得します。

次のSQLでは、DBA_TAB_COLUMNSでユーザ名、テーブル名、列名を指定して、NULL値の個数を取得しています。

select
    a.num_nulls
from
    dba_tab_columns a 
where
    a.owner = 'user1'
    and table_name = 'table1'
    and column_name = 'col1'
;

DBA_TAB_COLUMNSには他にも、NUM_DISTINCT列に一意な値の数、HIGH_VALUE列に最大値、LOW_VALUE列に最小値を持っているのでぜひ使ってみてください。

まとめ

MAXやMIN関数を使わずにNULL値の個数を確認するには、DBA_TAB_COLUMNSを参照します。

DBA_TAB_COLUMNSのNUM_NULLSをSELECT文で参照することで取得できます。

この他にも便利なSQLがあるのでぜひ使ってみてください。
【SQL】スキーマ(ユーザ)の一覧を確認する方法
【SQL】テーブルの一覧を確認する方法
【SQL】データ・レコード件数の多いテーブルを確認する方法
【SQL】パーティションテーブルの一覧を確認する方法
【SQL】表のパーティションごとの件数を確認する方法
【SQL】パーティションテーブルの設定内容を確認する方法