是否可以在 array_agg(BigQuery 中的结构表达式?

Is it possible to use star expression inside array_agg(struct expressions in BigQuery?

我正在将几个表格连接成一个嵌套表格,我想知道是否可以使用星号表达式,例如,

SELECT t1.*, ARRAY_AGG(STRUCT(t2.*)) FROM t1 JOIN t2 on t1.col1=t2.col1 GROUP BY t1.*

我收到一个错误,但我想知道,也许我可以为此使用一些技巧?

你的例子有两个问题:

  1. ARRAY_AGG 是一个 aggregate function,因此需要一个 GROUP BY 子句。
  2. 您的 ARRAY_AGG 内部需要一个 SELECT - 即 ARRAY_AGG((SELECT AS STRUCT t2.*))。需要额外的括号来将内部查询视为标量子查询表达式。

如果您修复这些问题,它应该能够 运行,但我也建议为 ARRAY_AGG 字段设置别名以使其更具可读性。