如何连接按 Presto 中另一列分组的数组?

bry*_*888 7 sql presto trino

这在 SQL(最好是 Presto)中是否可行:

我想重塑这张桌子:

id, array
1, ['something']
1, ['something else']
2, ['something']
Run Code Online (Sandbox Code Playgroud)

到这张表:

id, array
1, ['something', 'something else']
2, ['something']
Run Code Online (Sandbox Code Playgroud)

Pio*_*sen 14

在 Presto 中,您可以使用array_agg. 假设在输入时,您所有的arrays 都是单元素,这将如下所示:

select id, array_agg(array[0])
from ...
group by id;
Run Code Online (Sandbox Code Playgroud)

但是,如果您的输入数组不一定是单元素,则可以将其与 结合flatten,如下所示:

select id, flatten(array_agg(array))
from ...
group by id;
Run Code Online (Sandbox Code Playgroud)