PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

come far funzionare array_agg() come group_concat() da MySQL

In PostgreSQL 8.4 non puoi ordinare esplicitamente array_agg ma puoi aggirarlo ordinando le righe passate al gruppo/aggregato con una sottoquery:

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

In PostgreSQL 9.0 le espressioni aggregate possono avere un ORDER BY clausola:

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