sql - Where 子句在 Bigquery 的分区表中不起作用
问题描述
我想知道为什么 My SQL 不适用于分区表。还有什么应该是正确的查询?
另外,以下是我的查询:
**SELECt * from `TestProj.table_name`
where business_date = '2021-01-31'
and item = '102064962'**
;
请注意,该表每天按 business_date 列进行分区。
查询没有结果。但是查看实际表格应该会显示一些结果。
下面的查询有效:
**SELECt * from `TestProj.table_name`
where business_date = '2021-01-31'; **
解决方案
WITH DATA_FROM_PARTITIONS AS(
SELECT *
FROM `TestProj.table_name`
WHERE
business_date BETWEEN DATE('2021-01-31')
AND DATE('2021-02-01')),
SELECT *
FROM DATA_FROM_PARTIONS
WHERE item = '102064962'
AND business_date = DATE('2021-01-31');
第一个 AS 关键字限制 BQ 查找的分区,从而减少查询时间和成本。如果这对您不重要,您可以尝试以下查询:
SELECT * FROM
`TestProj.table_name`
WHERE
business_date = DATE('2021-01-31')
AND item = '102064962'
推荐阅读
- bert-language-model - 如何为 BertMasked 语言模型提供合成输入嵌入
- python - 在追加到数组之前添加/更新值+键
- flutter - Flutter:每次运行 Flutter 应用程序时都会重置 Chrome 设置
- c - 如何将 C 结构反序列化为 Rust 结构
- angular - 如何将 Node_modules 文件夹添加到 github 存储库?
- java - 从数组中删除对象(Java)
- python - 在 Python 中对文本列进行排序
- r - 如何从 R 中的输出文件中按国家/地区过滤推文?
- python - 最有效的短列表排序算法
- typescript - 如何使用 TypeScript 从 Firebase Firestore 文档中获取数据字段?