SQL Academy
Premium
Funktionsreferenz

ARRAY_AGG

Entsprechung in MySQL:

Sammelt die Werte einer Gruppe von Zeilen in einem Array.

PostgreSQL 17.5
ARRAY_AGG([DISTINCT] expression [ORDER BY ...])

Parameter

DISTINCTSchlüsselwortoptional
Nur eindeutige Werte sammeln
expression
Ausdruck, dessen Werte im Array gesammelt werden
ORDER BYoptional
Reihenfolge der Elemente im Array

Rückgabewert

Array von Werten desselben Typs; auch NULL-Werte landen im Array; NULL bei leerer Menge

Beispiele

Zahlen absteigend als Array

PostgreSQL 17.5
SELECT ARRAY_AGG(
		n
		ORDER BY n DESC
	)
FROM GENERATE_SERIES(1, 5) AS n;
array_agg
54321

Namen nach Status mit GROUP BY

PostgreSQL 17.5
SELECT status,
	ARRAY_AGG(member_name) AS members
FROM FamilyMembers
GROUP BY status
ORDER BY status;
statusmembers
daughterLela QuinceyAnnie QuinceyWednesday Addams
fatherHeadley QuinceyErnest Forrest
motherFlavia QuinceyConstance Forrest
sonAndie Quincey

Details

Anders als STRING_AGG überspringt ARRAY_AGG keine NULL-Werte. Ohne ORDER BY ist die Reihenfolge der Elemente nicht garantiert.

Die Elemente des Arrays werden ab 1 nummeriert: Der Ausdruck (ARRAY_AGG(member_name ORDER BY birthday))[1] gibt den Namen des ältesten Familienmitglieds zurück.

Siehe auch