BigQuery中如何拆分RECORD下的Repeated String列为多行?
BigQuery拆分嵌套重复字段为多行记录
你原SQL的问题在于二次UNNEST时未正确关联层级,且未给展开后的标签字段指定别名,导致输出不符合预期。以下是正确的写法:
方式一:隐式CROSS JOIN UNNEST(BigQuery简化写法)
SELECT a.id, tag FROM ticket_table a, UNNEST(a.child_events) AS child_event, UNNEST(child_event.tags) AS tag WHERE a.id = 15927
方式二:显式CROSS JOIN写法(逻辑更清晰)
SELECT a.id, tag FROM ticket_table a CROSS JOIN UNNEST(a.child_events) AS child_event CROSS JOIN UNNEST(child_event.tags) AS tag WHERE a.id = 15927
这两种写法都会先展开child_events这个重复RECORD字段,再对每个展开的子记录中的tags重复字符串字段进行二次展开,最终得到每个id对应单个tag的多行记录,符合预期输出。
内容的提问来源于stack exchange,提问作者Gowtham SB
相关产品推荐
相关产品推荐

