★本記事はifnull文やcase文を使ってNullチェックやNull補完について解説しています。
【記事の信頼性】
日々、Bigqeuryを業務で活用している現役エンジニアである筆者がifnull構文について解説しています。
データ分析では、null埋めをして処理できるデータ形式へ変換することが一般的です。
もしくは、Nullが入っているゴミデータを削除したいこともあると思います。
Bigqueryでは、ifnullやcaseといった便利な関数があり、サクッと値を変換できるので是非参考にしてみてください。
-
【動画で勉強したい人必見】Bigqueryを学べるUdemy講座3選
本記事は5分で読み終えることができます。【記事の信頼性】京都大学出身の現役ITエンジニアである筆者は日々の業務でBigqueryを活用しています。Bigqueryを知り尽くした筆者がBigqueryを ...
続きを見る
Nullチェックするifnull文
Bigqeuryには非常に便利なifnullという関数があります。
ifnull 関数を使うと 1つ目の引数が NULL だったた 2つ目の引数を返します。
ifnullのメリット
メリットは、nullかどうかだけを判定したい時にシンプルに記述できる点です。
nullをゴミデータとして削除したい場合や0で補完したいといった時などデータクレンジング、null埋めで使われるのがifnullですね。
ifnullの使い方
簡単な具体例でみていきましょう。以下のような名前と年齢のテーブルがあったとします。
name | age |
Mike | 49 |
Bob | null |
Tom | 18 |
上のテーブルでageにnullがあったら、0を埋める時のクエリは下のようになります。
# ifnull(チェックしたいカラム, 変換する値)で記述
select ifnull(age, 0) from `person`
BigQuery で学ぶ非エンジニアのための SQL データ分析入門
Bigqueryで使うSQLを体系的に学び、「この処理の最適な方法は何だろう」と考えられるようになります。Udemyのセール中に是非受講してみましょう。
複数条件を扱えるcase文
caseのメリット
caseは、あるカラムに対してnullを含めた様々な条件で値を置き換えたい場合に活躍します。
条件をwhenで指定していきますが(詳細は後述)、複数の条件もまとめて指定することができクエリの可読性が一気に上がります。
caseの使い方
一般的な書き方は以下になります。
「when」で条件を指定、「then」で置き換えたい値を指定します。最後にENDは忘れないでくださいね。
CASE
WHEN 条件1 THEN 値,
WHEN 条件2 THEN 値,
ELSE THEN 値
END
では、具体例を下のテーブルでみていきましょう。
年齢が「nullなら0」で埋める、「成人していたら1」、「成人していないなら0」で置き換えることを考えます。
name | age |
Mike | 49 |
Bob | null |
Tom | 18 |
サンプルクエリは以下です。複数条件をまとめて記述できるので便利ですね。
SELECT
CASE
WHEN age is null THEN 0 # nullなら0で埋める
WHEN age >= 20 THEN 1 # 20才以上なら1
ELSE 2 # その他は2(20才未満)
END
FROM `person`
まとめ
今回はBigqueryで頻繁に利用するifnullやcaseを紹介しました。
データ分析においてnull埋めは、基礎中の基礎なので是非とも覚えてしまうことをオススメします!
-
【動画で勉強したい人必見】Bigqueryを学べるUdemy講座3選
本記事は5分で読み終えることができます。【記事の信頼性】京都大学出身の現役ITエンジニアである筆者は日々の業務でBigqueryを活用しています。Bigqueryを知り尽くした筆者がBigqueryを ...
続きを見る