如何在 presto/SQL 中使用两个数组列创建(分解)单独的行

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

如果我们有两个形状相同的数组。我们如何在 Presto SQL 中为数组中与第二个数组中的其他元素关联的每个元素创建/分解单独的行。

例如,

|           Array1         |           Array2          |
| ------------------------ | ------------------------- |
| [0, 1, 34, 55, 68, 100]  | [40, 10, 30, 50, 60, 88]  |

想要的结果


| Column_a | Column_b |
| -------- | -------- |
|     0    |    40    |
|     1    |    10    |
|    34    |    30    |
|    55    |    50    |
|    68    |    60    |
|   100    |    88    |

我尝试使用

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

但它给出了每个其他数组元素的输出。

sql presto
1个回答
0
投票

你可以尝试这个方法:

SELECT
    unnested_array1 AS Column_a,
    unnested_array2 AS Column_b
FROM
    (SELECT UNNEST(Array1) AS unnested_array1, UNNEST(Array2) AS unnested_array2) AS t;
© www.soinside.com 2019 - 2024. All rights reserved.