【问题标题】:Dynamic query using bigquery and data studio使用 bigquery 和 Data Studio 进行动态查询
【发布时间】:2020-07-08 02:18:49
【问题描述】:

我想在 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 parameterized 查询吗?但是,目前经典 BigQuery 网页界面不支持它们。

标签: google-bigquery dynamic-sql google-data-studio


【解决方案1】:

我相信在纯 Bigquery 中,您可以为此目的使用 DECLARE clause,定义指定类型的变量:

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 

或者,您可以查看parameterized queries,但正如我在评论中提到的,经典 BigQuery 网络用户界面不支持它们。

【讨论】:

  • 是的。目前不支持。
猜你喜欢
  • 2022-12-05
  • 2021-11-28
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 2014-06-28
  • 2017-04-15
  • 1970-01-01
相关资源
最近更新 更多