Tendrás que definir, cómo para agrupar valores que comparten el mismo category_id
. ¿Concatenarlos? ¿Calcular una suma?
Para crear listas de valores separados por comas, su declaración podría verse así:
SELECT category_id
,string_agg(col1, ', ') AS col1_list
,string_agg(col2, ', ') AS col2_list
FROM items
GROUP BY category_id
Necesita Postgres 9.0 o posterior para string_agg(col1, ', ')
.En versiones anteriores, puede sustituirlo por array_to_string(array_agg(col1), ', ')
. Más funciones agregadas aquí
.
Agregar valores en PostgreSQL es el enfoque claramente superior en comparación con agregar valores en el cliente. Postgres es muy rápido en esto y reduce el tráfico (de red).