Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Databricks SQL
Databricks Runtime 16.4 und höher
Gibt verkettete STRING
- und BINARY
-Werte innerhalb einer Gruppe zurück.
Diese Funktion ist ein Alias für die string_agg-Funktion.
Syntax
listagg ( [ALL | DISTINCT] expr [, delimiter] )
[ WITHIN GROUP (ORDER BY { sortKey [ sort_direction ] [ nulls_sort_oder ] } [, ...] ) ]
[ FILTER ( WHERE cond ) ]
sort_direction
[ ASC | DESC ]
nulls_sort_order
[ NULLS FIRST | NULLS LAST ]
Diese Funktion kann auch mithilfe der Klausel als OVER
aufgerufen werden, wenn die WITHIN GROUP
Klausel und FILTER
Klausel weggelassen werden.
Argumente
expr
Ein Ausdruck, der mit
STRING
oderBINARY
ausgewertet wirdNULL
Werte werden ignoriert.delimiter
Ein konstanter Ausdruck, der dem Typ von
expr
entspricht und benutzt wird, um die verketteten Werte zu trennen. Die Standardeinstellung ist eine leere Zeichenfolge (''
) fürSTRING
und eine Leere Binärdatei (''::BINARY
) fürBINARY
.ORDER BY
Ein Ausdruck, der zum Sortieren der Werte vor der Verkettung verwendet wird Der Standardwert ist die Reihenfolge der Zeilen in der Gruppe.
sortKey
Ein Ausdruck, in dem die Reihenfolge definiert ist. Die Spaltenverweise innerhalb von
sortKey
müssen auch inexpr
vorhanden sein.sort_direction
Gibt die Sortierreihenfolge für die Sortierung nach Ausdruck an
-
ASC
: Die Sortierrichtung für diesen Ausdruck ist „aufsteigend“. -
DESC
: Die Sortierrichtung für diesen Ausdruck ist „absteigend“.
Wird die Sortierrichtung nicht explizit angegeben, werden Zeilen standardmäßig aufsteigend sortiert.
-
Reihenfolge der Nullwerte
Gibt optional an, ob NULL-Werte vor/nach Nicht-NULL-Werten zurückgegeben werden. Wird
null_sort_order
nicht angegeben, werden NULL-Werte bei der SortierreihenfolgeASC
zuerst und bei der SortierreihenfolgeDESC
zuletzt aufgeführt.-
NULLS FIRST
:NULL
Werte werden unabhängig von der Sortierreihenfolge zuerst zurückgegeben. -
NULLS LAST
:NULL
Werte werden unabhängig von der Sortierreihenfolge zuletzt zurückgegeben.
-
cond
: Ein optionalerBOOLEAN
Ausdruck, der die zeilen filtert, die für die Aggregation verwendet werden.
Rückkehr
STRING
, wenn expr
vom Typ STRING
ist, andernfalls BINARY
.
Wenn DISTINCT
angegeben wird, werden nur eindeutige Werte aggregiert und sortKey
muss mit expr
übereinstimmen.
Beispiele
-- Simple example with default delimiter
> SELECT listagg(col) FROM VALUES ('a'), ('b'), ('c') AS tab(col);
acb
-- Simple example with explicit delimiter
> SELECT listagg(col, ', ') FROM VALUES ('a'), ('b'), ('c') AS tab(col);
b, a, c
-- Example with nulls
> SELECT listagg(col) FROM VALUES ('a'), (NULL), ('c') AS tab(col);
ac
-- Example with explicit order
> SELECT listagg(col) WITHIN GROUP (ORDER BY col DESC)
FROM VALUES ('a'), ('b'), ('c') AS tab(col);
cba
-- Example with DISTINCT
> SELECT listagg(DISTINCT col)
FROM VALUES ('a'), ('a'), ('b') AS tab(col);
ab
-- Example of FUNCTION_AND_ORDER_EXPRESSION_MISMATCH
> SELECT listagg(DISTINCT col) WITHIN GROUP (ORDER BY id DESC)
FROM VALUES (1, 'a'), (2, 'b'), (3, 'c') AS tab(id, col);
Error: [INVALID_WITHIN_GROUP_EXPRESSION.MISMATCH_WITH_DISTINCT_INPUT
-- Example with `BINARY`
> SELECT hex(listagg(col::binary, x'00'))
FROM VALUES (1, 'a'), (2, 'b'), (3, 'c') AS tab(id, col);
6100630062