You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Amazon Athena中同时拆分多列嵌套列表为行?

在Amazon Athena中高效拆分多列嵌套列表

核心高效方法:单次unnest处理多列

不需要重复执行三次拆分操作,你可以在同一个unnest子句里同时指定所有需要展开的数组列,通过一次cross join完成多列的行转列,性能比多次拆分更优。

场景1:待拆分的数组列长度一致

如果要拆分的几列(比如COL4、COL5、COL6)每行中的数组元素数量相同,直接用以下代码即可:

select 
    t.COL1, t.COL2, t.COL3, 
    u.COL4, u.COL5, u.COL6
from t
cross join unnest(t.COL4, t.COL5, t.COL6) as u(COL4, COL5, COL6)

场景2:待拆分的数组列长度不一致

如果不同数组列的元素数量不匹配,可以用with ordinality获取每个元素的位置索引,再通过位置关联展开,缺失的元素会显示为null:

select 
    t.COL1, t.COL2, t.COL3,
    col4_val, col5_val, col6_val
from t
cross join unnest(t.COL4) with ordinality as c4(col4_val, pos)
left join unnest(t.COL5) with ordinality as c5(col5_val, pos) using(pos)
left join unnest(t.COL6) with ordinality as c6(col6_val, pos) using(pos)

内容的提问来源于stack exchange,提问作者Alejandra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:31:19