目次
本記事概要
対象者
- マーケ担当者
- PM
- 経営企画部etc
- レポーティング担当者
本記事の目的
- COALESCE()関数を使って、NULLを0に置き換える
想定シチュエーション
KPIシートを定期クエリで自動更新しようと考えている方。
私の場合は広告効果のKPIシートを自動更新する際にCOALESCE()を使いました。
スプレッドシートのイメージは以下。

上記のようにデイリーでKPIシートを作成する場合、
WITH句を使って、X月1日〜X月末日のDATEだけを抽出したテーブルを作成し、DATEに各KPIをJOINしていく形をとると必要があると思います。
そういった場合、以下のスプレッドシートのように、値がNULLのセルにはセルが空白になりすごく気持ち悪いです。
そこでNULLには0が代入されるようにします。

COALESCE()でNULLを0に置き換える!(SQL)
rentalテーブル概要
今回は以下のようなrentalテーブルを使用します。
※【SQL練習】サンプルデータベースを用意するで作成したMySQL公式のサンプルデータベースで練習することを一連の流れにしているので、多少強引にWITH句を使って説明する点ご了承ください😢
COALESCE()関数使い方
下記のコードをコピーして、まずはSQLを叩いてみてください。
①まずWITH句を使って、日付だけのテーブルを作ります。
クエリの結果は以下です。
■dateテーブル
今回はdateテーブルのsubstring(return_date,1,10)を基準に以下のdate2テーブルJOINします。
クエリの結果は以下です。
■date2テーブル

ではまずCOALESCE()関数を使わない場合
クエリ結果は以下です。
しかし21行目のget_date2.cをcoalesce(get_date2.c,0)に変えると、

こんな感じで0が代入されます。
これを使えばスプレッドシートのセルを空白ではなく、0にすることができます。