要は Legacy SQL モード で FROM (TABLE_DATE_RANGE(dataset.table_, TIMESTAMP('2016-01-01'), TIMESTAMP('2016-01-14')))
とか書いていたのを標準 SQL でどう書くか、という話です。
すぐ忘れるのでメモ。
テーブルは以下のような名前になっている前提です。
- table_20160101
- table_20160102
- table_20160103
- …
これで例えば直近 14 日分のテーブルを対象にしたい場合はこんな感じ。
SELECT time
FROM `dataset.table_*`
WHERE _TABLE_SUFFIX >= FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 14 DAY))
テーブル名はワイルドカードで指定しつつ、_TABLE_SUFFIX
という擬似カラムに対して日付の条件を指定する。
詳細は以下の公式ドキュメントを参考にしましょう。
よく使うパターンですが、覚えていられない、という人で普段 Re:dash でクエリを書いている、という人は v0.12.0 で追加された Query Snippets という機能を使うと、こんな感じにキーワード補完されるようになって便利です。
設定としては以下のようにしておけば _TABLE_SUFFIX
というキーワードをトリガーに補完されます。