簡體   English   中英

使用 bigquery 和 data studio 進行動態查詢

[英]Dynamic query using bigquery and data studio

我想在 Data Studio 中取出每個日期范圍的數據,而無需一直更改 BigQuery 中的日期范圍選擇器。 但是,不確定是否有可能這樣做。 我這樣做的原因是為了確保查詢的數據只有 30 天,因為稍后它會使用這 30 天的數據進行某種細分。

然后我發現 Data Studio 可以使用 dynamic_date,但是這種方式永遠不會產生任何數據表(數據表將用於從中進行其他查詢)。 是否可以改為在 BigQuery 中執行 dynamic_date? 比如使用之前未在查詢中定義的日期范圍從 BigQuery 檢索數據。

從我的角度來看,代碼應該是這樣的:

SELECT
   ID, 
   FROM `table`
   WHERE DATE(Timestamp) between $DS_START_DATE and  $DS_START_DATE + INTERVAL 30 DAY)

或者

WHERE DATE(Timestamp) >= @DS_START_DATE

我相信在純 Bigquery 中,您可以為此目的使用DECLARE 子句,定義指定類型的變量:

declare DS_START_DATE date default "2020-03-03";
declare DS_END_DATE date default "2020-03-04";

WITH sample AS (
  SELECT '10001' AS id,  cast('2020-03-01' AS timestamp) as date_id UNION ALL
  SELECT '10002', cast('2020-03-02' AS timestamp) UNION ALL
  SELECT '10003', cast('2020-03-03' AS timestamp) UNION ALL
  SELECT '10004', cast('2020-03-04' AS timestamp) UNION ALL
  SELECT '10005', cast('2020-03-05' AS timestamp) UNION ALL
  SELECT '10006', cast('2020-03-06' AS timestamp)
)
select id, date_id from sample

where date(date_id) between DS_START_DATE and DS_END_DATE 

或者,您可以查看參數化查詢,但正如我在評論中提到的,經典 BigQuery web UI 不支持它們。

在 Looker Studio(又名 Data Studio)中使用自定義查詢時仍然不支持DECLARE ,但可以將日期范圍傳遞到查詢中,如下所示。 請注意,日期作為字符串傳遞,因此parse_date是必需的。

WHERE DATE(Timestamp) >= parse_date('%Y%m%d', @DS_START_DATE)

啟用日期范圍時還有一個預定義的參數@DS_END_DATE

更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM