我正在尝试GROUP并将重复的字段返回到新表
SELECT url, NEST(label) AS labels
FROM [mytable]
GROUP EACH BY url
当我选中“展平结果”复选框时,它会起作用。当我取消选中该框时,我收到“错误:发生了内部错误,无法完成请求。”
本体的知识-图表:job_qD7a2Wrq9uCTqZrMbvwdy3v9Vtg
答案 0 :(得分:4)
NEST
与未展开的结果不兼容,如http://doctrine-orm.readthedocs.org/en/latest/reference/working-with-associations.html#filtering-collections所述。
可能适用于您的解决方法是使用SPLIT(GROUP_CONCAT(label))
而不是NEST
。如果您的标签字段是字符串类型,那应该有效。如果您的标签包含逗号,则可能需要为GROUP_CONCAT
选择显式分隔符,但我认为此解决方案应该可行。
答案 1 :(得分:3)
最近找到了解决此问题的方法:
尝试
SELECT url, labels
FROM (
SELECT url, NEST(label) AS labels
FROM [mytable]
GROUP EACH BY url
) as a
CROSS JOIN (SELECT 1) as b
注意,您必须在Allow Large Results
开启且Flatten Results
关闭
答案 2 :(得分:1)
来自NEST()的“Query Reference”:
BigQuery会自动展平查询结果,因此如果您在顶级查询中使用NEST函数,结果将不会包含重复的字段。使用产生中间结果的子选择时,请使用NEST函数,以供同一查询立即使用。
所以如果你想在这里得到一个非平坦的结果,你需要从你的其他选择中做一个select *我认为