PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

wie man array_agg() dazu bringt, wie group_concat() von mySQL zu funktionieren

In PostgreSQL 8.4 können Sie array_agg nicht explizit bestellen Sie können dies jedoch umgehen, indem Sie die an die Gruppe/das Aggregat übergebenen Zeilen mit einer Unterabfrage anordnen:

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

In PostgreSQL 9.0 können Aggregatausdrücke einen ORDER BY haben Klausel:

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