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.