Będziesz musiał określić, jak do grupowania wartości, które mają ten sam category_id
. Połączyć je? Oblicz sumę?
Aby utworzyć listę wartości oddzielonych przecinkami, Twoje oświadczenie może wyglądać tak:
SELECT category_id
,string_agg(col1, ', ') AS col1_list
,string_agg(col2, ', ') AS col2_list
FROM items
GROUP BY category_id
Potrzebujesz Postgresa 9.0 lub nowszego dla string_agg(col1, ', ')
.W starszych wersjach możesz zastąpić array_to_string(array_agg(col1), ', ')
. Więcej funkcji agregujących tutaj
.
Agregacja wartości w PostgreSQL jest zdecydowanie lepszym podejściem w przeciwieństwie do agregowania wartości w kliencie. Postgres jest bardzo szybki w tym przypadku i zmniejsza ruch (w sieci).