PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

comment faire fonctionner array_agg() comme group_concat() à partir de mySQL

Dans PostgreSQL 8.4, vous ne pouvez pas ordonner explicitement array_agg mais vous pouvez contourner ce problème en ordonnant les lignes transmises au groupe/agrégat avec une sous-requête :

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

Dans PostgreSQL 9.0, les expressions d'agrégation peuvent avoir un ORDER BY clause :

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