Presto Query of array of structs devuelve elementos de estructura individuales como columnas en lugar de filas de estructuras
Aug 15 2020
Aquí hay datos de muestra y consultas rápidas con resultados reales y resultados deseados.
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
Salida Devolvió 2 columnas : nombre y departamento y 2 filas.
Salida deseada : 1 columna de tipo struct y 2 filas.
¿Cómo obtengo el resultado deseado en presto? ¿Es posible?
Gracias por adelantado,
Respuestas
2 PiotrFindeisen Aug 15 2020 at 13:44
El comportamiento que está observando es el comportamiento estándar de SQL.
Puede obtener la salida deseada con
SELECT ROW(t.name, t. department)
o, al evitar que unnest"desempaque" las filas con un transform():
CROSS JOIN UNNEST(transform(users, u -> ROW(u)) as t