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.