目前,我的表格有三个不同的字段id1
,id2
和actions
。action
是字符串类型。例如,我的表看起来像下面给出的表:
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的一些基础知识,可以根据条件加入列,但不确定是否可以通过查询来实现。如果能够做到这一点,那么执行此逻辑的最佳方法是什么?
尝试ARRAY_JOIN
搭配使用ARRAY_AGG
:
SELECT
id1,
id2,
ARRAY_JOIN(ARRAY_AGG(actions), ',') actions
FROM yourTable
GROUP BY
id1,
id2;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句