Как объединить массивы, сгруппированные по другому столбцу в Presto? - PullRequest
0 голосов
/ 25 сентября 2018

Возможно ли это в SQL (предпочтительно Presto):

Я хочу изменить эту таблицу:

id, array
1, ['something']
1, ['something else']
2, ['something']

К этой таблице:

id, array
1, ['something', 'something else']
2, ['something']

1 Ответ

0 голосов
/ 25 сентября 2018

В 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;
...