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

Gruppér efter specificeret kolonne i PostgreSQL

Du bliver nødt til at definere, hvordan at gruppere værdier, der deler den samme category_id . Sammenkæde dem? Beregn en sum?

For at oprette kommaseparerede lister over værdier kan dit udsagn se sådan ud:

SELECT category_id
      ,string_agg(col1, ', ') AS col1_list
      ,string_agg(col2, ', ') AS col2_list
FROM   items
GROUP  BY category_id

Du skal bruge Postgres 9.0 eller nyere til string_agg(col1, ', ') .I ældre versioner kan du erstatte med array_to_string(array_agg(col1), ', ') . Flere samlede funktioner her .

At aggregere værdier i PostgreSQL er den klart overlegne tilgang i modsætning til at aggregere værdier i klienten. Postgres er meget hurtig ved dette, og det reducerer (netværks)trafik.



  1. Opretter forbindelse til SQL Server LocalDB ved hjælp af JDBC

  2. Hvor mange signifikante cifre skal jeg gemme i min database for en GPS-koordinat?

  3. Hvordan kan jeg modtage en e-mail, når min MySQL-tabel er opdateret?

  4. Installer Postgres.app på en Mac