PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So gruppieren und verketten Sie Arrays in PostgreSQL

Um dieselbe Dimension Ihres Arrays beizubehalten, können Sie array_agg() nicht direkt verwenden , also unnest wir zuerst Ihre Arrays und wenden Sie distinct an um Duplikate zu entfernen (1). In der äußeren Abfrage ist dies die Zeit für die Aggregation. Um die Reihenfolge der Werte beizubehalten, schließen Sie order by ein innerhalb der Aggregatfunktion:

select time, array_agg(col order by col) as col
from (
  select distinct time, unnest(col) as col
  from yourtable
) t
group by time
order by time

(1) Wenn Sie keine doppelte Entfernung benötigen, entfernen Sie einfach distinct Wort.