Dovrai definire, come per raggruppare valori che condividono lo stesso category_id
. Concatenarli? Calcolare una somma?
Per creare elenchi di valori separati da virgole, la tua affermazione potrebbe essere simile a questa:
SELECT category_id
,string_agg(col1, ', ') AS col1_list
,string_agg(col2, ', ') AS col2_list
FROM items
GROUP BY category_id
Hai bisogno di Postgres 9.0 o successivo per string_agg(col1, ', ')
.Nelle versioni precedenti puoi sostituirlo con array_to_string(array_agg(col1), ', ')
. Altre funzioni aggregate qui
.
Aggregare i valori in PostgreSQL è l'approccio chiaramente superiore rispetto all'aggregare i valori nel client. Postgres è molto veloce a questo e riduce il traffico (di rete).