首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询所有分区表

查询所有分区表
EN

Stack Overflow用户
提问于 2021-12-29 10:01:34
回答 1查看 264关注 0票数 0

我有大约600个分区表,称为table.ga_session。每个表以1天分隔,对于每个表,它有自己的唯一名称,例如,日期表(30/12/2021)的名称为table.ga_session_20211230。对于其他表也是如此,命名格式类似于这个table.ga_session_YYYYMMDD。

现在,当我试图调用所有已分区表时,不能使用以下命令:。错误表明_PARTITIONTIME是不被识别的。

代码语言:javascript
复制
SELECT 
*,
_PARTITIONTIME pt

FROM `table.ga_sessions_20211228` 

where _PARTITIONTIME 

BETWEEN TIMESTAMP('2019-01-01') 

AND TIMESTAMP('2020-01-02')

我也试过这个,但没有用。

代码语言:javascript
复制
select *
from between `table.ga_sessions_20211228` 
and 
`table.ga_sessions_20211229`

我也不能使用FROM 'table.ga_sessions‘来应用WHERE子句来获取时间范围,因为表不存在。如何调用所有这些分区表?提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-29 11:52:03

可以使用通配符表进行查询。例如:

代码语言:javascript
复制
SELECT max
FROM `bigquery-public-data.noaa_gsod.gsod*`
WHERE _TABLE_SUFFIX = '1929'

这将专门查询gsod1929表,但如果需要,可以排除table_suffix子句。

在您的场景中,您可以:

代码语言:javascript
复制
select *
from table.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN '20190101' and '20200102'

有关更多信息,请参见此处的文档:https://cloud.google.com/bigquery/docs/reference/standard-sql/wildcard-table-reference

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70517849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档