Roe*_*ant 3 sql amazon-web-services presto amazon-athena
我正在尝试将唯一用户 ID 的数组合并为一个唯一用户 ID 的数组。AWS athena没有该set_union功能,所以我无法使用
, set_union(userids)
Run Code Online (Sandbox Code Playgroud)
而且reduce_agg似乎不允许数组
, reduce_agg(userids, ARRAY[], (a, b) -> array_union(a, b), (a, b) -> array_union(a, b))
Run Code Online (Sandbox Code Playgroud)
是否有任何其他技巧可以用来将数组组合成一个数组(不同的项目)
一种选择是通过and来使用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
Run Code Online (Sandbox Code Playgroud)
输出:
| _col0 |
|---|
| [1,2,3,4,5] |
| 归档时间: |
|
| 查看次数: |
1617 次 |
| 最近记录: |