日付で飛び飛びなデータを集計する時には、カレンダーテーブルが欲しくなることがあります。
Google BigQueryでは下記でカレンダーテーブルを作成できます。
- 「GENERATE_DATE_ARRAY()」でカレンダー配列が作れるので、「UNNEST()」で配列を行に展開してテーブル化します。
SELECT * FROM UNNEST( GENERATE_DATE_ARRAY( '2019-01-01', '2019-12-31', INTERVAL 1 DAY) ) AS date
INTERVAL <INT> <DATE_PART>
で日付間隔を変えれます。
例えば、毎月1日のカレンダーが欲しい場合は「INTERVAL 1 MONTH」とします。
上記例の引数「INTERVAL 1 DAY」はデフォルト値なので、書かなくても構いません。