sql >> Databasteknik >  >> RDS >> PostgreSQL

Gruppera efter angiven kolumn i PostgreSQL

Du måste definiera hur för att gruppera värden som delar samma category_id . Sammanfoga dem? Beräkna en summa?

För att skapa kommaseparerade listor med värden kan ditt uttalande se ut så här:

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

Du behöver Postgres 9.0 eller senare för string_agg(col1, ', ') .I äldre versioner kan du ersätta med array_to_string(array_agg(col1), ', ') . Fler samlade funktioner här .

Att aggregera värden i PostgreSQL är den klart överlägsna metoden i motsats till att aggregera värden i klienten. Postgres är mycket snabb vid detta och det minskar (nätverks)trafiken.



  1. Källkod för det befintliga objektet i Oracle

  2. Använder unaccent med SearchVector och SearchQuery i Django

  3. Forum för bästa SQL Server Performance för hjälp med de svåraste frågorna

  4. passera värde i url href i php