Sql 修复使用JOIN和UNNEST从BigQuery中选择嵌套字段时重复的行

Sql 修复使用JOIN和UNNEST从BigQuery中选择嵌套字段时重复的行,sql,google-bigquery,Sql,Google Bigquery,我试图将数据从一个BQ表复制到另一个BQ表,但在取消嵌套和联接方面遇到了问题。我的模式中有两个重复记录类型的字段,当我尝试连接这些字段时,会得到许多重复的行。以下是我的疑问: SELECT Title as Title, ARRAY_AGG(STRUCT(Address.Field1, Address.Field2)) AS Address, ARRAY_AGG(STRUCT(Work.Field1, Work.Field2)) AS Work FROM source_t

我试图将数据从一个BQ表复制到另一个BQ表,但在取消嵌套和联接方面遇到了问题。我的模式中有两个重复记录类型的字段,当我尝试连接这些字段时,会得到许多重复的行。以下是我的疑问:

SELECT
  Title as Title,
  ARRAY_AGG(STRUCT(Address.Field1, Address.Field2)) AS Address,
  ARRAY_AGG(STRUCT(Work.Field1, Work.Field2)) AS Work
  
FROM
   source_table
   LEFT JOIN UNNEST(Address) AS Address,
   LEFT JOIN UNNEST(Work) AS Work

GROUP BY
  Title
我想要实现的是:

| Title | Address.Field1|Address.Field2| Work.Field1|Work.Field2|
|-------|---------------|--------------|------------|-----------|
| A     |     aaa       |     ccc      |     eee    |     ggg   |
|       |     bbb       |     ddd      |     fff    |     hhh   |
但当我加入Address和Work时,我会得到一个重复行的日志,如下所示:

| Title | Address.Field1|Address.Field2| Work.Field1|Work.Field2|
|-------|---------------|--------------|------------|-----------|
| A     |     aaa       |     ccc      |     eee    |     ggg   |
|       |     aaa       |     ccc      |     fff    |     hhh   |
|       |     aaa       |     ccc      |     eee    |     ggg   |
|       |     bbb       |     ddd      |     fff    |     hhh   |
我需要帮助修复连接,并将感谢一些建议。提前感谢。

尝试子查询:

SELECT
  Title as Title,
  ARRAY(select STRUCT(Field1, Field2) from UNNEST(source_table.Address)) AS Address,
  ARRAY(select STRUCT(Field1, Field2) from UNNEST(source_table.Work)) AS Work
FROM
   source_table

非常感谢你,谢尔盖。如果地址中有另一个嵌套记录,如Address.otheran_Address.Field1,该怎么办。如何映射?请尝试从UNNESTsource_表中选择STRUCTAnother_Address.Field1。Address作为地址,UNNESTAddress.Another_Address作为另一个_地址。我收到错误:输入预期结束,但在UNNESTAddress.Another_地址获得关键字UNNEST。数组的括号可能放错地方了吗?哦,看起来我放错了括号:ARRAYselect STRUCTAnother_Address.Field1 from UNNESTsource_table.Address作为地址,UNNESTAddress.Another_Address作为另一个地址非常感谢,@Sergey。成功了。