使用具有相对日期范围和标准 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 通配符 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在标准 SQL 的 BigQuery 中过滤具有 iso 周值的列?
SQL Server:填写每个实体具有不同日期范围的缺失日期