【问题标题】:Presto / AWS Athena : create Array of different types inside the SELECTPresto / AWS Athena:在 SELECT 中创建不同类型的数组
【发布时间】:2020-07-26 17:22:01
【问题描述】:

我目前有一个如下所示的 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 但这不起作用,因为数组需要相同类型的元素。另外我也不想进行第二次查询来修改输出。

【问题讨论】:

    标签: aggregate presto amazon-athena


    【解决方案1】:

    正如您已经发现的那样,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 以改进这一点。

    【讨论】:

      猜你喜欢
      • 2019-02-01
      • 1970-01-01
      • 2021-12-28
      • 2022-10-08
      • 2018-12-20
      • 1970-01-01
      • 2020-01-21
      • 2019-05-13
      • 1970-01-01
      相关资源
      最近更新 更多