【发布时间】:2021-08-26 07:01:07
【问题描述】:
我有大约 10 个表,我使用以下查询逐轮制作一个大的嵌套表:
R1 AS(
SELECT ANY_VALUE(Table1).*, ARRAY_AGG(( SELECT AS STRUCT Table2.* EXCEPT(ID))) AS Table2
FROM Table1 LEFT JOIN Table2 USING(ID)
GROUP BY Table1.ID),
R2 AS(
SELECT ANY_VALUE(R1).*, ARRAY_AGG(( SELECT AS STRUCT Table3.* EXCEPT(ID))) AS Table3
FROM R1 LEFT JOIN Table3 USING(ID)
GROUP BY R1.ID),
...
SELECT ANY_VALUE(R9).*, ARRAY_AGG(( SELECT AS STRUCT Table10.* EXCEPT(ID))) AS Table10
FROM R9 LEFT JOIN Table10 USING(ID)
问题是,例如在我的第一个表中,我可以有两个具有相同 ID 的记录,但其他一些字段会不同,我想将它们视为两个不同的记录,因此按表的所有字段分组,同时我加入。 然后我想对所有“子表”(查询中的 R 表)做同样的事情,这样我就可以按嵌套表的所有字段进行分组。
我怎样才能轻松做到?
我尝试了 GROUP BY Table1.*,但它不起作用...
提前谢谢你
【问题讨论】:
标签: sql group-by google-bigquery nested-table