【发布时间】:2017-01-19 20:36:07
【问题描述】:
我在 BigQuery 中有每日表格 (table_name_yyyymmdd)。如何编写一个始终查询滚动 12 个月数据的视图?
【问题讨论】:
标签: google-bigquery
我在 BigQuery 中有每日表格 (table_name_yyyymmdd)。如何编写一个始终查询滚动 12 个月数据的视图?
【问题讨论】:
标签: google-bigquery
举个例子:
将下面的查询另存为视图(我们将其命名为 - view_test - 我假设它与表在同一个数据集中)
#standardSQL
SELECT PARSE_DATE('%Y%m%d', _TABLE_SUFFIX) as table, COUNT(1) as rows_count
FROM `yourProject.yourDataset.table_name_*`
WHERE _TABLE_SUFFIX
BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 13 DAY) )
AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) )
GROUP BY 1
现在你可以像下面这样使用它:
#standardSQL
SELECT *
FROM `yourProject.yourDataset.view_test`
因此,此视图参考过去 12 天
您可以将 DAY 更改为 MONTH 以改为有 12 个月
希望你有想法
如果需要,可以轻松地将其“转换”为旧版 SQL(确保调用该视图的视图和查询使用相同的 SQL 版本/方言)
注意:Google 会尽可能推荐migrate to Standard SQL!
【讨论】:
您可以使用根据文档 (https://cloud.google.com/bigquery/docs/reference/legacy-sql#table-date-range) 的函数 TABLE_DATE_RANGE :
查询跨越一个日期范围的多个每日表格。
如下:
SELECT *FROM TABLE_DATE_RANGE(data_set_name.table_name,
TIMESTAMP('2016-01-01'),
TIMESTAMP('2016-12-31'))
由于目前没有以编程方式参数化视图的选项,因此您需要通过其他工具/代码生成查询/视图
【讨论】: