PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Agrupar por coluna especificada no PostgreSQL


Você terá que definir, como para agrupar valores que compartilham o mesmo category_id . Concatená-los? Calcular uma soma?

Para criar listas de valores separados por vírgulas, sua instrução pode ficar assim:
SELECT category_id
      ,string_agg(col1, ', ') AS col1_list
      ,string_agg(col2, ', ') AS col2_list
FROM   items
GROUP  BY category_id

Você precisa do Postgres 9.0 ou posterior para string_agg(col1, ', ') .Nas versões mais antigas você pode substituir por array_to_string(array_agg(col1), ', ') . Mais funções agregadas aqui .

Agregar valores no PostgreSQL é a abordagem claramente superior ao invés de agregar valores no cliente. Postgres é muito rápido nisso e reduz o tráfego (de rede).