sql >> Databasteknik >  >> RDS >> PostgreSQL

hur man får array_agg() att fungera som group_concat() från mySQL

I PostgreSQL 8.4 kan du inte uttryckligen beställa array_agg men du kan kringgå det genom att ordna raderna som skickas till gruppen/aggregatet med en underfråga:

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

I PostgreSQL 9.0 kan aggregerade uttryck ha en ORDER BY klausul:

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



  1. mySQL lagrad procedur för att dela strängar med avgränsare

  2. Gruppera rader efter årsbandintervall

  3. Hur man hittar kolumnnamn för alla tabeller i alla databaser i SQL Server

  4. Fråga Hjälp - Sträng in där sats har &tecken