presto - 结构数组的 Presto 查询返回单个结构元素作为列而不是结构行
问题描述
这是示例数据和带有实际结果和期望结果的 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)
或者,通过防止 使用unnest
a 来“解包”行transform()
:
CROSS JOIN UNNEST(transform(users, u -> ROW(u)) as t
推荐阅读
- vue.js - 使用 Vue 导致超出堆栈大小的异步函数
- javascript - 发送数组以发出导致最大调用堆栈大小超出 Javascript socket.io
- c - 是否可以仅在 C 中使用 int 类型将 3.005 添加到 4.70?
- c# - C# .csproj 构建问题
- python - 多处理返回多个值
- ruby-on-rails - Brew 更新中断“Rails s”(Open SSL + LoadError - 找不到类 Digest::SHA1 的库 — digest/sha1)
- python - Django 3 - 为主键提供默认值时的 Model.save()
- mysql - 在同一行选择今年和上一年的mysql
- c++ - 使用 Qt 在 Eclipse 中未定义对 MainFrame 的 vTable 的引用
- node.js - Heroku - Mongoose、Node.Js 项目的部署引发 H10 错误