SQL Academy
Premium
Funktionsreferenz

ARRAY_AGG

Entsprechung in MySQL:

Sammelt die Werte einer Gruppe von Zeilen in einem Array.

PostgreSQL 17.9
ARRAY_AGG([DISTINCT] expression [ORDER BY sort_expression [ASC | DESC] [NULLS FIRST | NULLS LAST]])
  • [ ]optionaler Teil
  • a | beine der Optionen
DISTINCT
Nur eindeutige Werte sammeln
SchlüsselwortOptional
expression
Ausdruck, dessen Werte im Array gesammelt werden
ORDER BY sort_expression [ASC | DESC] [NULLS FIRST | NULLS LAST]
Reihenfolge der Elemente, ohne sie beliebig
Optional
sort_expression
Spalte oder Ausdruck, nach dem sortiert wird
ASC | DESC
Richtung, standardmäßig ASC
SchlüsselwortOptional
ASCDESC
NULLS FIRST | NULLS LAST
Position von NULL, standardmäßig am Ende bei ASC und am Anfang bei DESC
SchlüsselwortOptional
NULLS FIRSTNULLS LAST

Rückgabewert

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

Beispiele

Zahlen absteigend als Array

PostgreSQL 17.9
SELECT ARRAY_AGG(
		n
		ORDER BY n DESC
	)
FROM GENERATE_SERIES(1, 5) AS n;
array_agg
[5,4,3,2,1]

Namen nach Status mit GROUP BY

PostgreSQL 17.9
SELECT status,
	ARRAY_AGG(member_name) AS members
FROM FamilyMembers
GROUP BY status
ORDER BY status;
statusmembers
daughter["Lela Quincey","Annie Quincey","Wednesday Addams"]
father["Headley Quincey","Ernest Forrest"]
mother["Flavia Quincey","Constance Forrest"]
son["Andie Quincey"]

Details

Anders als STRING_AGG überspringt ARRAY_AGG keine NULL-Werte.

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