使用TABLE_DATE_RANGE()的BigQuery通配符 [英] BigQuery Wildcard using TABLE_DATE_RANGE()

查看:178
本文介绍了使用TABLE_DATE_RANGE()的BigQuery通配符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

今天早上有关新表格通配符功能的好消息!有没有办法在包含日期但没有前缀的表上使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆