I have a table with the an array column type:
title tags
"ridealong";"{comedy,other}"
"ridealong";"{comedy,tragedy}"
"freddyjason";"{horror,silliness}"
I would like to write a query that produces a single array per title(in an ideal world it would be a set/deduplicated array)
e.g.
select array_cat(tags),title from my_test group by title
The above query doesn't work of course, but I would like to produce 2 rows:
"ridealong";"{comedy,other,tragedy}"
"freddyjason";"{horror,silliness}"
Any help or pointers would be very much appreciated
(I am using Postgres 9.1)
Based on Craig's help I ended up with the following (slightly altered syntax since 9.1 complains about the query exactly as he shows it)
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;
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…