Presto / AWS Athena:在 SELECT 中创建不同类型的数组

Presto / AWS Athena : create Array of different types inside the SELECT

我目前有一个 AWS Athena 查询,如下所示:

SELECT array_agg(ROW(n.stop_sequence, n.stop_name, n.stop_lat, n.stop_lon))
FROM ...
GROUP BY ...

现在的输出如下所示:

[{field0=39, field1=Name, field2=41.838512, field3=12.437013}, {field0=...,...},...]

有没有办法以某种方式修改(而不是进行另一个查询来修改当前输出)SELECT,使输出看起来像这样?

[[39, Name, 41.838512, 12.437013}, [...],...]

我尝试使用 ARRAY 而不是 ROW 但这不起作用,因为数组需要相同类型的元素。我也不想进行第二次查询来修改输出。

正如您已经发现的那样,array 需要是同质的,属于某种类型,并且 SQL 中没有共同的超类型。匿名 rowrow 带有未命名的字段)是您想要的,但这是目前打印的方式

presto> SELECT ROW(42, true, 'Presto SQL');
                    _col0
---------------------------------------------
 {field0=42, field1=true, field2=Presto SQL}
(1 row)

您可以跟踪问题 https://github.com/prestosql/presto/issues/4587 以改进此问题。