在bigquery中基于逗号分隔符取消多列嵌套时如何避免重复?

问题描述 投票:0回答:1

我使用下面的查询将逗号分隔的行分成两行。但面临重复的问题。

SELECT colm_A,colm_B, colm_C From Db.Table_A, UNNEST(Split(COLM_B,',')), COLM_B, UNNEST(SPLIT(COLM_C,',')) COLM_C;

实际表 | Colm_A | Colm_B |科尔姆_C | -------- | -------- |-------- | 1 |鱼 | F | 2 |狗,猫 | D、C

上述查询的输出 | Colm_A | Colm_B |科尔姆_C | -------- | -------- |-------- | 1 |鱼 | F | 2 |狗 | D | 2 |猫 | C | 2 |狗 | D | 2 |猫 | C

预期产出 | Colm_A | Colm_B |科尔姆_C | -------- | -------- |-------- | 1 |鱼 | F | 2 |狗 | D | 2 |猫 | C

google-cloud-platform google-bigquery unnest
1个回答
0
投票

使用以下方法

select Colm_A, Colm_B, Colm_C
from your_table, 
unnest(split(Colm_B)) Colm_B with offset
join unnest(split(Colm_C)) Colm_C with offset
using (offset)

如果应用于您问题中的样本数据 - 输出为

© www.soinside.com 2019 - 2024. All rights reserved.