Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: Databricks SQL
Databricks Runtime 16.4 lub nowsze
Zwraca połączone wartości STRING
i BINARY
w obrębie grupy.
Ta funkcja jest aliasem funkcji string_agg.
Składnia
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 ]
Tę funkcję można również wywołać jako funkcję okna przy użyciu OVER
klauzuli , jeśli klauzula WITHIN GROUP
i FILTER
klauzula zostaną pominięte.
Argumenty (w programowaniu)
expr
Wyrażenie, które ocenia się na
STRING
lubBINARY
.NULL
wartości są ignorowane.delimiter
Wyrażenie stałe zgodne z typem separatora
expr
, używanego do oddzielania połączonych wartości. Wartość domyślna jest pustym ciągiem znaków (''
) dlaSTRING
oraz zerowej długości wartością binarną (''::BINARY
) dlaBINARY
.ORDER BY
Wyrażenie używane do porządkowania wartości przed łączeniem. Wartość domyślna to kolejność wierszy w grupie.
sortKey
Wyrażenie, w którym zdefiniowano kolejność. Odwołania do kolumn w
sortKey
muszą również występować wexpr
.sort_direction
Określa kolejność sortowania dla kolejności według wyrażenia.
-
ASC
: kierunek sortowania dla tego wyrażenia jest rosnąco. -
DESC
: Kolejność sortowania dla tego wyrażenia jest malejąco.
Jeśli kierunek sortowania nie jest jawnie określony, domyślnie wiersze są sortowane rosnąco.
-
nulls_sort_order
Opcjonalnie określa, czy wartości NULL są zwracane przed/po wartościach innych niż NULL. Jeśli
null_sort_order
nie określono parametru , najpierw posortuj listy NULLs, jeśli kolejność sortowania toASC
, a sortowanie nulls ostatnie, jeśli kolejność sortowania toDESC
.-
NULLS FIRST
:NULL
wartości są zwracane najpierw niezależnie od kolejności sortowania. -
NULLS LAST
:NULL
wartości zwracane są na końcu, niezależnie od kolejności sortowania.
-
cond
: opcjonalneBOOLEAN
wyrażenie filtrujące wiersze używane do agregacji.
Zwraca
A STRING
jeśli expr
jest elementem STRING
, BINARY
w przeciwnym razie.
Jeśli określono DISTINCT
, agregowane są tylko unikatowe wartości, a sortKey
musi być zgodny z parametrem expr
.
Przykłady
-- 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