如何连接由 Presto 中的另一列分组的数组?
How to concatenate arrays grouped by another column in Presto?
这在SQL(最好是Presto)中是否可行:
我想重塑这个table:
id, array
1, ['something']
1, ['something else']
2, ['something']
对此table:
id, array
1, ['something', 'something else']
2, ['something']
在 Presto 中您可以使用 array_agg
。假设在输入时,所有 array
都是单元素,这看起来像这样:
select id, array_agg(array[0])
from ...
group by id;
但是,如果您的输入数组不一定是单元素的,您可以将其与 flatten
结合使用,如下所示:
select id, flatten(array_agg(array))
from ...
group by id;
如果您想要一个显示聚合数组中不同项目的数组,那么这应该可行:
select id, array_distinct(flatten(array_agg(array))) as array
from ...
group by id
这在SQL(最好是Presto)中是否可行:
我想重塑这个table:
id, array
1, ['something']
1, ['something else']
2, ['something']
对此table:
id, array
1, ['something', 'something else']
2, ['something']
在 Presto 中您可以使用 array_agg
。假设在输入时,所有 array
都是单元素,这看起来像这样:
select id, array_agg(array[0])
from ...
group by id;
但是,如果您的输入数组不一定是单元素的,您可以将其与 flatten
结合使用,如下所示:
select id, flatten(array_agg(array))
from ...
group by id;
如果您想要一个显示聚合数组中不同项目的数组,那么这应该可行:
select id, array_distinct(flatten(array_agg(array))) as array
from ...
group by id