PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment regrouper et concaténer des tableaux dans PostgreSQL

Pour conserver la même dimension de votre tableau, vous ne pouvez pas utiliser directement array_agg() , donc d'abord nous unnest vos tableaux et appliquez distinct supprimer les doublons (1). Dans la requête externe, il s'agit du temps d'agrégation. Pour conserver l'ordre des valeurs, incluez order by dans la fonction d'agrégat :

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) Si vous n'avez pas besoin de supprimer les doublons, supprimez simplement distinct mot.