如何在bigquery中正确取消嵌套重复/数组列?

How to unnest the repeated/array columns properly in bigquery?

提问人:Saravana Kumar 提问时间:9/7/2023 更新时间:9/7/2023 访问量:33

问:

我试图取消嵌套两列 associate 和 manager。 表格示例如下

id | associate | manager
101   Marie      Susan
      Jenie      Paul

当我使用下面的查询展平上述内容时

select id,associate,manager from table,
unnest(associate) as associate,
unnest(manager) as manager

我的结果将是

id | associate | manager
101   Marie      Susan
101   Jenie      Paul
101   Marie      Susan
101   Jenie      Paul

结果集只是一个示例。这些值正在成倍增加,并且不必要地显示。

我的预期结果是

id | associate | manager
101   Marie      Susan
101   Jenie      Paul
数组 google-bigquery 嵌套

评论


答:

1赞 Mikhail Berlyant 9/7/2023 #1

请考虑以下内容 (BigQuery Standard SQL)

select id, associate, manager
from your_table, 
unnest(associate) associate with offset
join unnest(manager) manager with offset
using(offset)  

带输出

enter image description here

评论

0赞 Saravana Kumar 9/7/2023
伟大。上述解决方案奏效了。但是,请考虑 manager 字段为 null,在这种情况下,联接失败且显示零条记录。
1赞 Mikhail Berlyant 9/7/2023
数组不能有 null 元素!但是,如果整个字段都是空的 - 只需使用而不是 :o)left joinjoin