我将几张表连接成一个嵌套表,我想知道是否可以使用星号表达式,例如,
SELECT t1.*, ARRAY_AGG(STRUCT(t2.*)) FROM t1 JOIN t2 on t1.col1=t2.col1 GROUP BY t1.*
我收到一个错误,但我想知道,也许我可以为此使用一些技巧?
我将几张表连接成一个嵌套表,我想知道是否可以使用星号表达式,例如,
SELECT t1.*, ARRAY_AGG(STRUCT(t2.*)) FROM t1 JOIN t2 on t1.col1=t2.col1 GROUP BY t1.*
我收到一个错误,但我想知道,也许我可以为此使用一些技巧?
您的示例有两个问题:
ARRAY_AGG
是一个聚合函数,因此需要一个GROUP BY
子句。ARRAY_AGG
需要的内部结构SELECT
- 即ARRAY_AGG((SELECT AS STRUCT t2.*))
。需要额外的括号将内部查询视为标量子查询表达式。如果您修复了这些问题,它应该能够运行,尽管我也建议对该ARRAY_AGG
字段进行别名以使其更具可读性。