本サイトにはプロモーションが含まれています
使い方
日付別に分割されたテーブルをまとめて参照したい時につかいます。
例えば
table_name_202301
30
131table_name
_20230
201table_name
_20230- …
table_name
_2023020
7
のようなテーブルからデータ取得する場合、以下のようになります。
SELECT
*
FROM
`project_id.dataset.table_name_*`
WHERE
_TABLE_SUFFIX BETWEEN '20230130' AND '20230207'
日付を動的にすることもできます。例えば、直近1週間分を対象にする場合は以下のようになります。
SELECT
*
FROM
`project_id.dataset.table_name_*`
WHERE
_TABLE_SUFFIX BETWEEN
FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 1 WEEK)) AND
FORMAT_DATE('%Y%m%d', CURRENT_DATE('Asia/Tokyo'))
解説
- テーブル名の日付部分をワイルドカードにする
- ワイルドーカードの部分を
_TABLE_SUFFIX
の条件で範囲指定 - 日付別にシャーディングされたテーブルに使う
関連リンク
より実務的なクエリを身につけるにはビッグデータ分析・活用のためのSQLレシピがおすすめです。
本サイトにはプロモーションが含まれています