将行合并到PrestoSQL中的列表中

网真

目前,我的表格有三个不同的字段id1id2actionsaction是字符串类型。例如,我的表看起来像下面给出的表:

id1   |   id2  |   actions
---------------------------
"a1"      "a2"     "action1"
"b1"      "b2"     "action2"
"a1"      "a2"     "action3"

如果任意数量的行的值id1和值id2都相同,则我想合并这些行,以使该actions字段成为字符串列表。如果没有行具有的相同值id1和的相同值id2,我仍然希望将actions字段转换为列表,但只能使用一个字符串。例如,查询的输出应类似于以下内容:

id1   |   id2  |   actions
---------------------------
"a1"      "a2"     ["action1", "action3"]
"b1"      "b2"     ["action2"]

我知道Presto的一些基础知识,可以根据条件加入列,但不确定是否可以通过查询来实现。如果能够做到这一点,那么执行此逻辑的最佳方法是什么?

蒂姆·比格莱森(Tim Biegeleisen)

尝试ARRAY_JOIN搭配使用ARRAY_AGG

SELECT
    id1,
    id2,
    ARRAY_JOIN(ARRAY_AGG(actions), ',') actions
FROM yourTable
GROUP BY
    id1,
    id2;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章