2017-08-29 18 views
0

standars SQLの使用。テーブルがワイルドカードテーブルで構成される場合 私はこれを使用してみてください:Bigqueryから今日と昨日を除いて過去3日間のデータを引き出す方法

SELECT * 
FROM `Resourse.Reports_Reg.Session_streaming` 
WHERE 
     SUBSTR(_table_suffix, 0, 6) = 
     FORMAT_DATE("%E4Y%m", DATE_SUB(CURRENT_DATE, INTERVAL 3 day)) 

この要求は、私が考えた、最後の5日間のデータを返す必要があります。しかし、私はまだそれが私にどのようなデータを返すのか理解していません。今日と昨日を除く過去3日間のデータを取得する方法

答えて

1

これは、クエリにワイルドカードがないと仮定すると、_table_suffixには何も選択されません。

あなたのテーブルには、インスタンスのために持っている場合のような名前の構造:非常に最後の文字列は、「%のY%mの%dの」形式で日付で

`Resourse.Reports_Reg.Session_streaming_20170820` 

は、その後、選択過去三第二日はすることができ次のようにしてください:

SELECT 
    * 
FROM `Resourse.Reports_Reg.Session_streaming_*` 
WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE, INTERVAL 3 day)) AND FORMAT_DATE("%Y%m%d", DATE_SUB(CURRENT_DATE, INTERVAL 2 day)) 

ワイルドカード "*"は、たとえば「20170820」という日付を選択しています。その後、適切な日付を選択するwhere句があります。

+0

この「選択」が今月中にすべて返されるため、 – Zzema

+0

私はそれに応じて回答を更新しようとしました。文字列の日付形式を変更して、テーブル名の日付を正しく照会する必要があることに注意してください。 –

関連する問題