Bigquery

【Bigquery】Nullだったら別の値に変えるifnull文を解説。case文での同様の処理も紹介。

ぐぅ

ぐぅ

京大工学部▶︎京大大学院情報学研究科▶︎日系企業のITエンジニア。研究室ではAI×通信の研究も行いAIにも知見あり。友人とプログラミング初学者向けブログ「はやぶさエンジニア」を運営。ノーコードで起業し、サブスク型サービスを運営。26歳大阪在住

★本記事は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の使い方

簡単な具体例でみていきましょう。以下のような名前と年齢のテーブルがあったとします。

nameage
Mike49
Bobnull
Tom18
person

上のテーブルで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」で置き換えることを考えます。

nameage
Mike49
Bobnull
Tom18
person

サンプルクエリは以下です。複数条件をまとめて記述できるので便利ですね。

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を ...

続きを見る

  • この記事を書いた人
ぐぅ

ぐぅ

京大工学部▶︎京大大学院情報学研究科▶︎日系企業のITエンジニア。研究室ではAI×通信の研究も行いAIにも知見あり。友人とプログラミング初学者向けブログ「はやぶさエンジニア」を運営。ノーコードで起業し、サブスク型サービスを運営。26歳大阪在住

-Bigquery

© 2021 はやぶさエンジニア Powered by AFFINGER5