sql >> Database >  >> RDS >> PostgreSQL

Arrays groeperen en samenvoegen in PostgreSQL

Om dezelfde dimensie van je array te behouden, kun je array_agg() niet rechtstreeks gebruiken , dus eerst unnest uw arrays en pas distinct toe om duplicaten te verwijderen (1). In buitenste query is dit de tijd om te aggregeren. Om waarden te behouden, moet u order by . opnemen binnen geaggregeerde functie:

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) Als u geen dubbele verwijdering nodig heeft, verwijdert u gewoon distinct woord.




  1. SQL, Postgres OID's, wat zijn het en waarom zijn ze nuttig?

  2. MySQL #1093 - U kunt geen 'weggeefacties' voor de doeltabel specificeren voor update in de FROM-clausule

  3. steden en afstand op breedtegraad-lengtegraad

  4. verschil tussen where_in en find_in_set