PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Raggruppa per colonna specificata in PostgreSQL

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).