google-bigquery - 尚不支持 BigQuery、非分区表上的通配符表和基于字段的分区表
问题描述
我正在尝试在 Bigquery 上使用标准 SQL 使用通配符表运行一个简单的查询。这是代码:
#standardSQL
SELECT dataset_id, SUM(totals.visits) AS sessions
FROM `dataset_*`
WHERE _TABLE_SUFFIX BETWEEN '20150518' AND '20210406'
GROUP BY 1
自 2015 年 5 月 18 日以来,我的分片数据集每天都包含一个表。所以今天的表格将是“dataset_20150518”。
错误是:“不支持非分区表和基于字段的分区表上的通配符表,第一个普通表 dataset_test,第一个列表 dataset_20150518。”
我尝试了不同类型的选择和聚合,但错误无法修复。我只想查询该时间范围内的所有表。
解决方案
这是因为在通配符中,您必须拥有具有相同架构的所有表。在您的情况下,您还添加dataset_test
了与其他模式不同的模式(dataset_test
是分区表吗?)
您应该能够通过删除 _test 和其他具有不同架构的表或运行以下查询来解决此限制:
#standardSQL
SELECT dataset_id, SUM(totals.visits) AS sessions
FROM `dataset_20*`
WHERE _TABLE_SUFFIX BETWEEN '150518' AND '210406'
GROUP BY 1
推荐阅读
- c# - 具有依赖注入的 EF 核心 DbContext
- c++ - 是否可以在 c++ 中使用 for 循环遍历一对值?
- c# - 我如何保护 c# dll?
- swiftui - GeometryReader 计算视图的总高度
- python - 如何在 Python 中获得哈密顿谐振子的相位图?
- sql - “for json auto”和“for json path”在 SQL Server Management Studio 中出现语法错误
- excel - VBA 循环目录从每个工作簿中删除(按工作表名称)除一个之外的所有工作表
- shell - 期望脚本不适用于多个密码请求
- javascript - HTML/Javascript 文本幻灯片,其中包含无限数量的组件
- java - 在驱动程序代码中创建圆形对象时遇到错误