Athena是否支持在ARRAY_AGG中使用ORDER BY?

0

【以下的问题经过翻译处理】 似乎Athena不支持在ARRAY_AGG函数中使用ORDER BY语句。以下是一个示例。

 WITH dataset AS (
       SELECT 1 AS breakdown_id, 1 AS history_order, 'OPEN' AS action
       UNION ALL
       SELECT 1 AS breakdown_id, 2 AS history_order, 'IN_PROGRESS' AS action
       UNION ALL
       SELECT 1 AS breakdown_id, 3 AS history_order, 'CLOSED' AS action
       UNION ALL
       SELECT 2 AS breakdown_id, 1 AS history_order, 'OPEN' AS action
       UNION ALL
       SELECT 2 AS breakdown_id, 2 AS history_order, 'IN_PROGRESS' AS action
       UNION ALL
       SELECT 3 AS breakdown_id, 1 AS history_order, 'OPEN' AS action
       UNION ALL
       SELECT 3 AS breakdown_id, 2 AS history_order, 'IN_PROGRESS' AS action
       UNION ALL
       SELECT 3 AS breakdown_id, 3 AS history_order, 'WAITING_FOR_INPUT' AS action
    
    )
    SELECT breakdown_id
         , ARRAY_AGG(action) AS actions
      FROM dataset
     GROUP BY breakdown_id

如果运行以下查询,记录将按预期聚合成数组。

然而,数组的元素需要按照history_order列指定的顺序排列。不幸的是,将ORDER BY添加到ARRAY_AGG函数中会导致无任何结果返回。

这是一个缺陷还是特性?更重要的是,是否有其他方法可以按history_order排序获取数组?

profile picture
전문가
질문됨 5달 전31회 조회
1개 답변
0

【以下的回答经过翻译处理】 你好,

如果你将 Athena 引擎升级至 v2 版本,之前失败的查询应该可以正常工作了。

请参考以下链接:https://docs.aws.amazon.com/athena/latest/ug/engine-versions-changing.html

profile picture
전문가
답변함 5달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠