
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