Presto/AWS Athena:在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中没有常见的超类型。一个匿名的row(带有未命名字段的row(是您想要的,但这是目前打印的方式

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

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

相关内容

  • 没有找到相关文章

最新更新