У меня есть таблица со столбцом типа массива:
title tags
"ridealong";"{comedy,other}"
"ridealong";"{comedy,tragedy}"
"freddyjason";"{horror,silliness}"
Я хотел бы написать запрос, который создает единый массив для каждого заголовка (в идеальном мире это будет набор/дедуплицированный массив)
например.
select array_cat(tags),title from my_test group by title
Вышеприведенный запрос не работает, но я хотел бы создать 2 строки:
"ridealong";"{comedy,other,tragedy}"
"freddyjason";"{horror,silliness}"
Любая помощь или указатели будут очень оценены (Я использую Postgres 9.1)
Основываясь на помощи Крейга, я закончил со следующим (слегка измененный синтаксис, поскольку 9.1 жалуется на запрос точно так, как он показывает его)
SELECT t1.title, array_agg(DISTINCT tag.tag)
FROM my_test t1, (select unnest(tags) as tag,title from my_test) as tag
where tag.title=t1.title
GROUP BY t1.title;