【发布时间】:2021-10-19 04:52:44
【问题描述】:
我将几张表合并成一个嵌套表,我想知道是否可以使用星号表达式,例如,
SELECT t1.*, ARRAY_AGG(STRUCT(t2.*)) FROM t1 JOIN t2 on t1.col1=t2.col1 GROUP BY t1.*
我收到一个错误,但我想知道,也许我可以为此使用一些技巧?
【问题讨论】:
标签: google-bigquery nested-table array-agg
我将几张表合并成一个嵌套表,我想知道是否可以使用星号表达式,例如,
SELECT t1.*, ARRAY_AGG(STRUCT(t2.*)) FROM t1 JOIN t2 on t1.col1=t2.col1 GROUP BY t1.*
我收到一个错误,但我想知道,也许我可以为此使用一些技巧?
【问题讨论】:
标签: google-bigquery nested-table array-agg
你的例子有两个问题:
ARRAY_AGG 是一个 aggregate function,因此需要一个 GROUP BY 子句。ARRAY_AGG 的内部需要SELECT - 即ARRAY_AGG((SELECT AS STRUCT t2.*))。需要额外的括号将内部查询视为标量子查询表达式。如果您修复了这些问题,它应该能够运行,尽管我也建议为 ARRAY_AGG 字段设置别名以使其更具可读性。
【讨论】:
GROUP BY 1, 2, 3 ...