在 bigquery 中查询从分区表创建的视图

Posted

技术标签:

【中文标题】在 bigquery 中查询从分区表创建的视图【英文标题】:Query a view which is created from partitioned table in bigquery 【发布时间】:2021-05-13 10:35:28 【问题描述】:

我有一个名为 customers 的分区表。 我从 customers 表中创建了一个视图,如下所示,它被称为 customers_view(在 where 子句中有更多约束,我在这里省略了):

SELECT * FROM `customers`
WHERE DATE(_PARTITIONTIME) > "2021-05-10"

现在我想从 customers_view 查询,但是当我写的时候:

SELECT * FROM `customers_view`
WHERE DATE(_PARTITIONTIME) > "2021-05-12"

SELECT * FROM `customers_view`
WHERE DATE(_pt) > "2021-05-12"

它给出了这个错误:! 无法识别的名称:_PARTITIONTIME(或 _pt)

如何查询由分区表创建并在 where 子句中具有分区时间的视图? (表和视图都有一个时间戳列,但我认为有些行在时间戳和_pt之间有 1 天的差距)

【问题讨论】:

【参考方案1】:

如果你想要视图中的分区时间,你需要明确地包含它:

SELECT c.*, _PARTITIONTIME as pt
FROM `customers`
WHERE DATE(_PARTITIONTIME) > '2021-05-10'

【讨论】:

谢谢 Gordon,让我试试,然后我会把它标记为正确答案

以上是关于在 bigquery 中查询从分区表创建的视图的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 日期分区视图

BigQuery - 使用分区创建视图,但基表没有

查询按分区字段分区的 BigQuery 表

当 Firebase Analytics 分区表中出现表时,在 Bigquery 中安排查询

如何从手动分区的 BigQuery 表中引用最新表

从 BigQuery 中的最新表分区通配符查询