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

Sådan grupperes efter og sammenkædes arrays i PostgreSQL

For at bevare den samme dimension af dit array kan du ikke direkte bruge array_agg() , så først unnest dine arrays og anvende distinct for at fjerne dubletter (1). I ydre forespørgsel er det tid til at aggregere. For at bevare værdier skal du inkludere order by inden for aggregeret funktion:

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) Hvis du ikke har brug for dubletfjernelse, skal du bare fjerne distinct ord.




  1. Start af en postgres SQL 9.6-server på Amazon Linux returnerer en ikke-genkendt tjeneste

  2. Hvad er nogle måder at få adgang til Microsoft SQL Server fra Linux?

  3. Send en række tags til en plpgsql-funktion og brug den i WHERE-tilstand

  4. mysql SELECT NOT IN () -- disjoint sæt?