未展平结果时 NEST 出现内部错误

Internal error on NEST when not flattening results

我正在尝试将重复的字段 return 分组到新的 table

SELECT url, NEST(label) AS labels
FROM [mytable]
GROUP EACH BY url

当我选中 "Flatten Results" 复选框时它会起作用。当我取消选中该框时,我得到 'Error: An internal error occurred and the request could not be completed.'

ontology-知识图谱:job_qD7a2Wrq9uCTqZrMbvwdy3v9Vtg

来自 NEST() 上的“Query Reference”:

BigQuery 会自动展平查询结果,因此如果您在顶级查询上使用 NEST 函数,结果将不会包含重复字段。使用 subselect 时使用 NEST 函数,该子select 会生成中间结果供同一查询立即使用。

所以如果你想要一个非扁平化的结果,你需要从你的另一个 select 做一个 select * 我想

不幸的是,

NEST 与未展平的结果不兼容,如 here.

所述

可能适合您的解决方法是使用 SPLIT(GROUP_CONCAT(label)) 而不是 NEST。如果您的标签字段是字符串类型,那应该可以工作。如果您的标签包含逗号,您可能需要为 GROUP_CONCAT 选择一个明确的分隔符,但我认为这个解决方案应该可行。

最近发现此问题的解决方法:

尝试

SELECT url, labels 
FROM (
  SELECT url, NEST(label) AS labels
  FROM [mytable]
  GROUP EACH BY url
) as a
CROSS JOIN (SELECT 1) as b  

请注意,您必须将结果写入 table,同时打开 Allow Large Results 并关闭 Flatten Results