Presto 查询结构数组 returns 单个结构元素作为列而不是结构行
Presto Query of array of structs returns individual sttruct elements as columns instead of rows of structs
这里是示例数据和带有实际结果和预期结果的预查询。
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 行。
如何快速获得想要的结果?可能吗?
提前致谢,
您观察到的行为是 SQL 标准行为。
您可以通过
获得所需的输出
SELECT ROW(t.name, t. department)
或者,通过阻止 unnest
from "unpacking" the rows with a transform()
:
CROSS JOIN UNNEST(transform(users, u -> ROW(u)) as t
这里是示例数据和带有实际结果和预期结果的预查询。
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 行。
如何快速获得想要的结果?可能吗?
提前致谢,
您观察到的行为是 SQL 标准行为。
您可以通过
获得所需的输出SELECT ROW(t.name, t. department)
或者,通过阻止 unnest
from "unpacking" the rows with a transform()
:
CROSS JOIN UNNEST(transform(users, u -> ROW(u)) as t