Combinar cadenas(string) de varios registros al estilo SUM del SQL – Mysql y Postgres

Holas,

La necesidad es combinar el resultado de una consulta sql de varios registros sobre una columna tipo string o varchar determinada, en un solo resultado al mismo estilo del usar el SUM() o AVG(), por ejemplo:

select nombre from cliente;

los datos de la tabla son:


ID NOMBRE TIPO
__________ _____________ _______
1 nombreA new
2 nombreB new
3 nombreC old

hacer una consulta que devuelva:


TIPO NOMBRES
_________ ________________
new nombreA;nombreB
old nombreC

para esto existe la función en MySQL GROUP_CONCAT que se aplica algo como:


SELECT tipo, GROUP_CONCAT(nombre SEPARATOR ';') nombres
FROM cliente:
GROUP BY tipo;

Esta función tiene ORDER BY o DISTINCT y la documentación completa esta obviamente en la página de MySQL el problema es que muchos (y me incluyo hasta hace poco) no la conocen.

Les dejo un link que tiene muchas mas información, y además como solventar la misma situación en SQL Server o PostgreSQL:

http://www.postgresonline.com/journal/archives/191-String-Aggregation-in-PostgreSQL,-SQL-Server,-and-MySQL.html

Espero que les sirva y de paso me dejo el TIP
Suerte!!!

This entry was posted in BDD Topics, General, Uncategorized.