使用BigQuery上的每日表格,如何查询滚动12个月?

时间:2017-01-19 20:36:07

标签: google-bigquery

我在BigQuery中有每日表,(table_name_yyyymmdd)。如何编写一个总能查询滚动12个月数据的视图?

2 个答案:

答案 0 :(得分:2)

举个例子:

将以下查询保存为视图(让我们将其命名为 - 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个月

希望你有个主意

如果需要,可以轻松地将其“翻译”为Legacy SQL(确保调用该视图的视图和查询使用相同的SQL版本/方言)
注意:只要有可能,Google就会建议migrate to Standard SQL

答案 1 :(得分:1)

你可以使用根据doc(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'))

由于目前没有以编程方式对视图进行参数化的选项,因此您需要通过其他工具/代码生成查询/视图