2017-07-12 11 views
0

Iが頻繁に次のように、従来のSQLを使用したBigQueryのデータの最後のN日(典型的には14又は30)を介してクエリを実行:相対日付範囲とワイルドカードと標準SQL

SELECT 
    … 
    FROM 
    TABLE_DATE_RANGE([XXX_], DATE_ADD(CURRENT_TIMESTAMP(), -30, 'DAY'), DATE_ADD(CURRENT_TIMESTAMP(), 0, 'DAY')) 
    WHERE 
    … 

私はしたいですレガシーSQLではなく標準SQLを使用するようにこのクエリを切り替えます。私はXXX_YYYYMMDDをワイルドカードを使って表現する方法を知っていて、XXX_2017*のような日付の特定の範囲を表現する方法を知っていますが、過去30日間のような相対的な範囲を表現する方法はわかりません。

上記のクエリを標準SQLに変換するにはどうすればよいですか?

答えて

1

これはあなたのために働くかどうかを確認してください:

この例では、ワイルドカードをフォーマット "%Y%m%d"で日付を選択している
SELECT 
    date 
FROM `dataset.table_*` 
WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)) AND FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE(), INTERVAL 0 DAY)) 
GROUP BY date 
ORDER BY DATE 

。ワイルドカード選択に適した形式を選択できます。

関連する問題