首页 > 解决方案 > “CLUSTER BY 表达式必须是可分组的,但类型是 STRUCT”错误

问题描述

我使用 Web UI 创建了一个表格,如下所示:

create table `project.dataset.test3` as (select 123 as id, 456 as offer_id)

我想从以前创建的表中创建一个聚集表,所以我尝试:

create table `project.dataset.test4` partition by (fake_date) 
cluster by (id, offer_id) as (
SELECT current_timestamp() fake_date, id, offer_id
FROM `project.dataset.test3`
group by 1,2,3)

但我收到错误消息:

CLUSTER BY expression must be groupable, but type is STRUCT at [2:12]

我搜索了文档,但无法深入了解此错误消息或制定任何解决方法。有任何想法吗?

标签: google-bigquery

解决方案


将括号放在两个或多个逗号分隔的表达式周围会创建一个结构,并且在您提供的语句中,您有:

cluster by (id, offer_id)

如果删除括号,则该语句应该成功:

cluster by id, offer_id

推荐阅读