结构数组的Presto查询以列而不是结构行的形式返回单个ststruct元素



这是示例数据和presto查询的实际结果和所需结果。

WITH
dataset AS (
SELECT 
ARRAY[
CAST(ROW('Sally', 'engineering') AS ROW(name VARCHAR, department VARCHAR)),
CAST(ROW('John', 'finance') AS ROW(name VARCHAR, department VARCHAR))
] AS users
)
select t.*
from dataset
cross join unnest(users) as t

输出返回2列:姓名和部门以及2行。

所需输出:结构类型的1列和2行。

如何在presto中获得所需的结果?有可能吗?

提前感谢

您观察到的行为是SQL标准行为。

您可以使用获得所需的输出

SELECT ROW(t.name, t. department)

或者通过防止CCD_;拆包";具有transform():的行

CROSS JOIN UNNEST(transform(users, u -> ROW(u)) as t

最新更新