sql >> Base de Datos >  >> RDS >> PostgreSQL

cómo hacer que array_agg() funcione como group_concat() desde mySQL

En PostgreSQL 8.4 no puede ordenar explícitamente array_agg pero puede solucionarlo ordenando las filas pasadas al grupo/agregado con una subconsulta:

SELECT id, array_to_string(array_agg(image), ',')
FROM (SELECT * FROM test ORDER BY id, rank) x
GROUP BY id;

En PostgreSQL 9.0, las expresiones agregadas pueden tener un ORDER BY cláusula:

SELECT id, array_to_string(array_agg(image ORDER BY rank), ',')
FROM test
GROUP BY id;