使用具有相对日期范围和标准 SQL 的 Bigquery Table 通配符 [重复]

Posted

技术标签:

【中文标题】使用具有相对日期范围和标准 SQL 的 Bigquery Table 通配符 [重复]【英文标题】:Using Bigquery Table wildcards with relative date range and Standard SQL [duplicate] 【发布时间】:2017-07-12 20:31:00 【问题描述】:

我经常使用旧版 SQL 在 bigquery 中对过去 N 天(通常为 14 或 30 天)的数据运行查询,如下所示:

  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】:

看看这是否适合你:

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

本示例中的通配符选择格式为"%Y%m%d" 的日期。您可以选择更适合您的通配符选择的格式。

【讨论】:

以上是关于使用具有相对日期范围和标准 SQL 的 Bigquery Table 通配符 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将 current_date 转换为相对日期和静态时间

如何在标准 SQL 的 BigQuery 中过滤具有 iso 周值的列?

SQL Server:填写每个实体具有不同日期范围的缺失日期

SQL BigQuery - 插入具有不同日期范围的行

SQL 检索具有不同序列号的所有记录,在日期范围和计数之间,拒绝代码 = "Low Current"

运行访问报告,包括另一个具有相同日期范围的非关联附加报告