Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime 16.4 och senare
Returnerar sammanfogade STRING värden och BINARY värden i en grupp.
Den här funktionen är ett alias för funktionen listagg.
Syntax
string_agg ( [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 ]
Den här funktionen kan också anropas som en fönsterfunktion med hjälp av OVER -satsen om WITHIN GROUP satsen och FILTER satsen utelämnas.
Argumentpunkter
exprEtt uttryck som utvärderas till en
STRINGellerBINARY.NULLvärden ignoreras.delimiterEtt konstant uttryck som matchar den typ av
exprsom används för att separera de sammanfogade värdena. Standardvärdet är en tom sträng ('') förSTRINGoch en binär fil med noll längd (''::BINARY) förBINARY.ORDER BYEtt uttryck som används för att sortera värdena före sammanfogning. Standardvärdet är ordningen på raderna i gruppen.
sortKeyEtt uttryck som ordning definieras på. Kolumnreferenserna inom
sortKeymåste också finnas iexpr.sort_direction
Anger sorteringsordningen för order efter uttryck.
-
ASC: Sorteringsriktningen för det här uttrycket är stigande. -
DESC: Sorteringsordningen för det här uttrycket är fallande.
Om sorteringsriktningen inte uttryckligen anges sorteras raderna som standard stigande.
-
sorteringsordning för nullvärden
Du kan också ange om NULL-värden returneras före/efter icke-NULL-värden. Om
null_sort_orderinte har angetts sorteras NULL:er först om sorteringsordningen ärASCoch NULLS-sortering senast om sorteringsordningen ärDESC.-
NULLS FIRST:NULLvärdena returneras först oavsett sorteringsordning. -
NULLS LAST:NULLvärdena returneras sist oavsett sorteringsordning.
-
cond: Ett valfrittBOOLEANuttryck som filtrerar de rader som används för aggregering.
Retur
Ett STRING om expr är ett STRING, BINARY annars.
Om DISTINCT anges aggregeras endast unika värden och sortKey måste matcha expr.
Exempel
-- Simple example with default delimiter
> SELECT string_agg(col) FROM VALUES ('a'), ('b'), ('c') AS tab(col);
acb
-- Simple example with explicit delimiter
> SELECT string_agg(col, ', ') FROM VALUES ('a'), ('b'), ('c') AS tab(col);
b, a, c
-- Example with nulls
> SELECT string_agg(col) FROM VALUES ('a'), (NULL), ('c') AS tab(col);
ac
-- Example with explicit order
> SELECT string_agg(col) WITHIN GROUP (ORDER BY col DESC)
FROM VALUES ('a'), ('b'), ('c') AS tab(col);
cba
-- Example with DISTINCT
> SELECT string_agg(DISTINCT col)
FROM VALUES ('a'), ('a'), ('b') AS tab(col);
ab
-- Example of FUNCTION_AND_ORDER_EXPRESSION_MISMATCH
> SELECT string_agg(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(string_agg(col::binary, x'00'))
FROM VALUES (1, 'a'), (2, 'b'), (3, 'c') AS tab(id, col);
6100630062