SQL/BigQuery 日付のリストを作る

日付のリストを作る(DATE型)

SELECT date FROM UNNEST(GENERATE_DATE_ARRAY(開始日,終了日, INTERVAL 数値 DAY) ) as date

  • 開始日と終了日はDATE型 '2020-01-01’
  • DAY、WEEK、MONTH、QUARTER、YEAR
  • 数値は1以上の整数

例えば2020年1月1日から31日までリストが欲しければ

SELECT date FROM UNNEST(GENERATE_DATE_ARRAY('2020-01-01′,’2020-01-31’, INTERVAL 1 DAY) ) as date

dateという名前のカラムに日付が入ったテーブルが出来るのでサブクエリの中で実行して必要に応じて使う。

日付のリストを作る(TIMESTAMP型)

GENERATE_TIMESTAMP_ARRAYもある。使い方は同じ。違いは

  • 開始日と終了日はTIMESTAMP型 '2020-01-01 00:00:00’。DATE型でも使える
  • 使えるのはMICROSECOND、MILLISECOND、SECOND、MINUTE、HOUR、DAY

オフィシャルドキュメント

GENERATE_DATE_ARRAY:https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators?hl=ja#generate_date_array

GENERATE_TIMESTAMP_ARRAY:https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators?hl=ja#generate_timestamp_array

SQL TIPS

Posted by shinu