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

如何在Presto SQL中利用两个同结构数组列生成拆分行

在Presto SQL中按位置拆分两个同结构数组列为多行

你当前用两次独立的CROSS JOIN UNNEST会产生笛卡尔积,因为每次UNNEST都是独立展开所有元素,无法保证对应位置的元素配对。要实现按数组索引位置拆分出对应元素的行,需要把两个数组放在同一个UNNEST语句中,Presto会自动按索引位置将元素一一对应。

正确SQL语句

SELECT Column_a, Column_b 
FROM a
CROSS JOIN UNNEST(Array1, Array2) AS t (Column_a, Column_b)

示例验证

输入表数据:

Array1Array2
[0, 1, 34, 55, 68, 100][40, 10, 30, 50, 60, 88]

执行上述SQL后,输出结果:

Column_aColumn_b
040
110
3430
5550
6860
10088

补充说明

如果两个数组长度不一致,Presto会以较长数组的长度为准,较短数组的剩余位置会自动填充NULL值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:42:04