我正在尝试使用google bigquery从带有日期通配符的表中选择数据.我希望能够使用TABLE_DATE_RANGE函数,但我需要查询大的日期范围(> 1年).现在我的查询适用于一年的数据,但我得到的任何东西:
错误:TABLE_DATE_RANGE错误:太多天了
#Fails
SELECT
system_id, sample_date, e_pv_array
FROM
(TABLE_DATE_RANGE(workspace.intervaldata,
TIMESTAMP('2009-03-01'),
TIMESTAMP('2010-03-04')))
WHERE
system_id = 20006
and e_pv_array is not null;
Run Code Online (Sandbox Code Playgroud)
#Works
SELECT
system_id, sample_date, e_pv_array
FROM
(TABLE_DATE_RANGE(workspace.intervaldata,
TIMESTAMP('2009-03-01'),
TIMESTAMP('2010-03-03')))
WHERE
system_id = 20006
and e_pv_array is not null;
Run Code Online (Sandbox Code Playgroud)
这只是bigquery的限制吗?或者有没有办法使用日期范围大于1年的表通配符?
我也遇到过TABLE_DATE_RANGE()的问题.假设您的表名为workspace.intervaldata20090303等,这是一种可能的解决方法:
SELECT
system_id, sample_date, e_pv_array
FROM
TABLE_QUERY(workspace, "integer(regexp_extract(table_id, r'intervaldata([0-9]+)')) BETWEEN 20090301 and 20100304")
WHERE
system_id = 20006
and e_pv_array is not null;
Run Code Online (Sandbox Code Playgroud)
我有一个类似的场景(日期分区表),并且能够使用TABLE_QUERY()运行超过2年的数据查询而没有错误.
| 归档时间: |
|
| 查看次数: |
1454 次 |
| 最近记录: |