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.