夕蛙のなく頃に

データアナリストとして学んだことや趣味で勉強し始めたIoTをアウトプットする

BigQueryで指定期間の月初・月末の日付シリーズを用意する

背景

集計で、一定期間の月末の日付シリーズが必要になりました。

月末を出すためには月初を出す必要があるので、一緒にまとめておこうと思います。

クエリイメージ

数字のシリーズを作成

--> 固定した日付に対して、1ヶ月後・2ヶ月後...と足していく

クエリ

これは、2018年1月〜2018年12月の月初の日付を出力しています。

WITH num_series AS (
  SELECT num FROM UNNEST(GENERATE_ARRAY(0, 11)) AS num
)
SELECT
  DATE_ADD(DATE(2018, 1, 1), INTERVAL num MONTH)
FROM
  num_series

月末を出す場合は月初から1日マイナスするようにします。
これは、2018年1月〜2018年12月の月末の日付を出力しています。

WITH num_series AS (
  SELECT num FROM UNNEST(GENERATE_ARRAY(1, 12)) AS num
)
SELECT
  DATE_SUB(DATE_ADD(DATE(2018, 1, 1), INTERVAL num MONTH), INTERVAL 1 DAY)
FROM
  num_series