【问题标题】:AWS athena (presto SQL): how can I union arraysAWS athena(presto SQL):我如何合并数组
【发布时间】:2022-01-18 19:04:17
【问题描述】:

我正在尝试将唯一用户 ID 数组组合成一个唯一用户 ID 数组。 AWS athena 没有set_union 功能,所以无法使用

, set_union(userids)

reduce_agg 似乎不允许使用数组

, reduce_agg(userids, ARRAY[], (a, b) -> array_union(a, b), (a, b) -> array_union(a, b))

我可以使用任何其他技巧将数组组合成一个数组(不同的项目)

【问题讨论】:

    标签: sql amazon-web-services amazon-athena presto


    【解决方案1】:

    一种选择是使用array_agg 并通过flattenarray_distinct 处理生成的数组数组:

    -- sample data
    WITH dataset (id, userids) AS (
        VALUES (1, array [ 1, 2, 3 ]),
            (1, array [ 3, 4, 5 ])
    ) 
    
    --query
    SELECT array_distinct(flatten(array_agg(userids)))
    FROM dataset
    GROUP BY id
    

    输出:

    _col0
    [1, 2, 3, 4, 5]

    【讨论】:

      猜你喜欢
      • 2020-06-10
      • 2017-12-17
      • 2020-02-11
      • 2019-02-01
      • 1970-01-01
      • 2018-12-20
      • 2021-09-17
      • 1970-01-01
      • 2017-06-17
      相关资源
      最近更新 更多