如果我们有两个形状相同的array.如何在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) 

但它会输出每隔一个数组元素.

推荐答案

UNNEST允许一次展平多个数组:

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

如果数组的长度不同,则较短的数组将填充null‘S

Sql相关问答推荐

LEFT JOIN不显示计数0我期望的方式

如何根据行状态设置正确的标志

Oracle分层查询-两条路径在末尾合并为一条

两个月之间的WHERE CASE WHEN-ORA-00905:缺少关键字

如何使用SQL生成数据的滚动3天总和

group-by-clause具有特定列,而不是oracle的toad中的all

在 Postgres 中将结果按几十年划分

Netezza SQL:判断两个表是否相同

将 jsonb 数组中的对象取消嵌套到单独的行中

不同计数的 Postgres PIVOT 表

我需要在 ASP.NET C# 中获取 2 个 SQL 查询结果的平均值

SQL根据另一列的顺序和值获取组中的最后一列

将最近的结束日期与开始日期相匹配

在 PostgreSQL 中,如何让多个判断约束引用相同的值数组?

如何使用 join 和 where 子句从另一表中仅删除一个表中的值

如何使用SELECT语句进行左连接,并根据右表中的特定值过滤结果?

PostgreSQL - 从同一张表中获取值

Select 字段,除非另一个字段包含重复项

Amazon Redshift - 子计划的哈希表不存在

在 MindsDB SQL 编辑器中运行 PostgreSQL 条目 ID 时出现未知 Select 目标错误