使用TABLE_DATE_RANGE()的BigQuery通配符 [英] BigQuery Wildcard using TABLE_DATE_RANGE()
问题描述
今天早上有关新表格通配符功能的好消息!有没有办法在包含日期但没有前缀的表上使用TABLE_DATE_RANGE()?
我有一个包含名为YYYYMMDD(无前缀)的表的数据集。通常我会这样查询:
SELECT foo
FROM [mydata.20140319],[mydata.20140320], [mydata.20140321]
LIMIT 100
我试过以下,但我得到错误:
SELECT foo
FROM
(TABLE_DATE_RANGE(mydata。,
TIMESTAMP(' 2014-03-19'),
TIMESTAMP('2015-03-21')))
LIMIT 100
以及:
SELECT foo
FROM
(TABLE_DATE_RANGE (mydata,
TIMESTAMP('2014-03-19'),
TIMESTAMP('2015-03-21')))
LIMIT 100
此处的底层错误已于2015-05-14修复。您应该可以使用纯数字表名称来使用 TABLE_DATE_RANGE
。您需要以'。'结尾数据集,并将括号中的名称括起来,以便解析器不会发生抱怨。这应该工作:
$ p $ SELECT foo
FROM
(TABLE_DATE_RANGE([mydata。],
TIMESTAMP('2014-03-19'),
TIMESTAMP('2015-03-21')))
LIMIT 100
Great news about the new table wildcard functions this morning! Is there a way to use TABLE_DATE_RANGE() on tables that include date but no prefix?
I have a dataset that contains tables named YYYYMMDD (no prefix). Normally I would query like so:
SELECT foo
FROM [mydata.20140319],[mydata.20140320],[mydata.20140321]
LIMIT 100
I tried the following but I'm getting an error:
SELECT foo
FROM
(TABLE_DATE_RANGE(mydata.,
TIMESTAMP('2014-03-19'),
TIMESTAMP('2015-03-21')))
LIMIT 100
as well as:
SELECT foo
FROM
(TABLE_DATE_RANGE(mydata,
TIMESTAMP('2014-03-19'),
TIMESTAMP('2015-03-21')))
LIMIT 100
The underlying bug here has been fixed as of 2015-05-14. You should be able to use TABLE_DATE_RANGE
with a purely numeric table name. You'll need to end the dataset in a '.' and enclose the name in brackets, so that the parser doesn't complain. This should work:
SELECT foo
FROM
(TABLE_DATE_RANGE([mydata.],
TIMESTAMP('2014-03-19'),
TIMESTAMP('2015-03-21')))
LIMIT 100
这篇关于使用TABLE_DATE_RANGE()的BigQuery通配符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!