PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Gruppieren nach angegebener Spalte in PostgreSQL

Sie müssen wie definieren um Werte zu gruppieren, die dieselbe category_id teilen . Verketten Sie sie? Summe berechnen?

Um durch Kommas getrennte Wertelisten zu erstellen, könnte Ihre Anweisung wie folgt aussehen:

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

Sie benötigen Postgres 9.0 oder höher für string_agg(col1, ', ') .In älteren Versionen können Sie durch array_to_string(array_agg(col1), ', ') ersetzen . Weitere Aggregatfunktionen hier .

Werte in PostgreSQL zu aggregieren ist der klar überlegene Ansatz gegenüber dem Aggregieren von Werten im Client. Postgres ist sehr schnell dabei und reduziert den (Netzwerk-)Verkehr.