Re: agrupar datos de distintos registros en un campo

From: Anthony Rafael Sotolongo Leon <asotolongo(at)uci(dot)cu>
To: Martín Marqués <martin(dot)marques(at)gmail(dot)com>
Cc: lista postrges <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: agrupar datos de distintos registros en un campo
Date: 2011-04-07 19:31:42
Message-ID: 214479254.2028241302204702018.JavaMail.root@ucimail1.uci.cu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Utiliza algo como esto , es parecido al group_concat de mysql, lo utilice una vez para obtener las llaves primarias de las tablas y en caso de tener mas de una me las ponía separadas por coma. Trata de ajustar esto a tu caso.

SELECT table_name,
array_to_string
(
ARRAY (
SELECT column_name::"text" FROM information_schema.key_column_usage,pg_constraint
WHERE ((pg_constraint.contype = 'p'::"char") AND (pg_constraint.conname =
information_schema.key_column_usage.constraint_name)) and grupo.table_name= information_schema.key_column_usage.table_name
),
','
) AS group_concat
FROM (
SELECT table_name
FROM information_schema.key_column_usage
GROUP BY
table_name
) grupo
ORDER BY
table_name

----- Mensaje original -----
De: "Martín Marqués" <martin(dot)marques(at)gmail(dot)com>
Para: "lista postrges" <pgsql-es-ayuda(at)postgresql(dot)org>
Enviados: Jueves, 7 de Abril 2011 15:23:15 (GMT-0500) Auto-Detected
Asunto: [pgsql-es-ayuda] agrupar datos de distintos registros en un campo

Estoy buscando esto por todos lados, pero no logro dar en la tecla.

Supongamos una tabla simple:

SELECT * FROM datos;
id | escuela | inscripcion | docente
----+-----------+-------------+----------------
1 | EIS | 1 | María Cristina
2 | EIS | 1 | Mariela
3 | EIS | 1 | José María
4 | Comercial | 2 | Daniel
5 | Comercial | 2 | María Rosa

Lo que yo quiero es agrupar por los campos escuela e inscripcion (en
realidad hay un solo numero de inscripcion por escuela, asi que sería
lo mismo decir que solo quiero agrupar por el campo escuela) y que los
datos repetidos de docente vayan agrupados en un campo separados por
','.

Es esto posible con SQL (no encontre como hacerlo) o debo pasar a un
lenguaje PL o directamente salir del motor?

--
Martín Marqués
select 'martin.marques' || '@' || 'gmail.com'
DBA, Programador, Administrador
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jorge Toro 2011-04-07 21:35:36 Problema con phpPgAdmin
Previous Message Martín Marqués 2011-04-07 19:23:15 agrupar datos de distintos registros en un campo