見出し画像

BigQuery上で歯抜けな日付を埋めてCOALESCEでnull行なくす

クエリ

WITH
  calendar AS (
  SELECT
    CAST(publish_date AS STRING) AS publish_date #スキーマの種類次第でCASTする
  FROM
    UNNEST(GENERATE_DATE_ARRAY( DATE('yyyy-mm-dd'), CURRENT_DATE())) AS publish_date ),
/*
任意の名称
- calendar
- publish_date
yyyy-mm-ddは任意の日付
*/
data_master AS(
  SELECT
date,
bbb,  
  FROM
    `xxx`
  )
SELECT
date,
COALESCE(bbb,0) AS bbb
FROM
calender
LEFT JOIN
data_master
ON calendar.publish_date = data_master.date

アウトプット

こういった内容が出力される。

date              |data
---------------------
2022-09-01 | a
2022-08-31 | c
2022-08-30 | a

解説:WITHとCOALESCEの場合わけ

WITHもCOALESCEもしない場合

dataがない行は歯抜けになる。

date              |data
---------------------
2022-09-01 | null
2022-08-30 | a

WITHしてCOALESCEだけしない場合

date              |data
---------------------
2022-09-01 | null
2022-08-31 | null
2022-08-30 | a

nullでいいよ、という人はWITHのみでおk。0とかなにかいれたい人は COALESCE(bbb,0) AS 付けたい名称 で。

サムネの海鮮丼

静岡県熱海からフェリーに乗って行った初島の田中屋さんの海鮮丼。うまかたです

https://goo.gl/maps/QD1P3TEHiPUcZv6U9


この記事が参加している募集

#マーケティングの仕事

7,176件

この記事が気に入ったらサポートをしてみませんか?