👏
BigQueryでSELECTするときはWITH句が見やすい
例えば、
SELECT
TRIM(JSON_EXTRACT(data, '$.count'), '\"') as count
FROM `project.firestore_export.posts_raw_latest`
Firestoreのデータをbigqueryにインポートすると、json形式となります。
今回はdatastudioに取り込みたいので、カスタムクエリでJSONを整形して取り込みます。
あるカラムに依存する形で CASE WHENを書きたいのですが、
SELECT
TRIM(JSON_EXTRACT(data, '$.count'), '\"') as count
CASE
WHEN CAST(ifnull(TRIM(JSON_EXTRACT(data, '$.count'), '\"'), "1") AS INT64) > 0 THEN true
ELSE false
FROM `project.firestore_export.posts_raw_latest`
毎回TRIMを書くのも見通しが悪いので、
WITH Posts AS (
SELECT
TRIM(JSON_EXTRACT(data, '$.count'), '\"') as count
FROM `project.firestore_export.posts_raw_latest`
)
SELECT
count,
CASE
WHEN CAST(ifnull(count, "1") AS INT64) > 0 THEN true
ELSE false
END as has_count,
FROM Posts
WITH句を使うことで、整形後の状態で扱え、可読性が向上します。
複数人がメンテナンスする場合も、あとからわかりやすくメンテナンス性が高いですね。
Discussion