PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come raggruppare e concatenare gli array in PostgreSQL

Per preservare la stessa dimensione del tuo array non puoi usare direttamente array_agg() , quindi prima unnest i tuoi array e applica distinct per rimuovere i duplicati (1). Nella query esterna questo è il momento di aggregare. Per preservare i valori, l'ordinamento include order by all'interno della funzione aggregata:

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) Se non hai bisogno della rimozione dei duplicati, rimuovi semplicemente distinct parola.