Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
controllo SQL di Databricks
Databricks Runtime 16.4 e versioni successive
Restituisce i valori concatenati STRING e BINARY all'interno di un gruppo.
Questa funzione è un alias per la funzione listagg.
Sintassi
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 ]
Questa funzione può anche essere richiamata come funzione finestra utilizzando la clausola OVER, se si omettono la clausola WITHIN GROUP e la clausola FILTER.
Argomenti
exprEspressione che restituisce un oggetto
STRINGoBINARY.NULLi valori vengono ignorati.delimiterEspressione costante che corrisponde al tipo di
exprutilizzato per separare i valori concatenati. Il valore predefinito è una stringa vuota ('') perSTRINGe un file binario di lunghezza zero (''::BINARY) perBINARY.ORDER BYEspressione utilizzata per ordinare i valori prima della concatenazione. Il valore predefinito è l'ordine delle righe nel gruppo.
sortKeyEspressione in base alla quale viene definito l'ordine. I riferimenti alle colonne all'interno
sortKeydevono essere presenti anche inexpr.sort_direction
Specifica l'ordinamento per l'ordine in base all'espressione.
-
ASC: la direzione di ordinamento per questa espressione è crescente. -
DESC: l'ordinamento per questa espressione è decrescente.
Se la direzione di ordinamento non viene specificata in modo esplicito, per impostazione predefinita le righe vengono ordinate in ordine crescente.
-
ordine_di_classificazione_dei_null
Specifica facoltativamente se i valori NULL vengono restituiti prima o dopo valori non NULL. Se
null_sort_ordernon viene specificato, gli NUL ordinano prima se l'ordinamento èASCe NULLS ordinano per ultimo se l'ordinamento èDESC.-
NULLS FIRST:NULLi valori vengono restituiti per primi indipendentemente dall'ordinamento. -
NULLS LAST:NULLi valori vengono restituiti per ultimo indipendentemente dall'ordinamento.
-
cond: espressione facoltativaBOOLEANche filtra le righe usate per l'aggregazione.
Restituzioni
Se STRING è un oggetto expr, STRING in caso BINARY contrario.
Se DISTINCT viene specificato solo i valori univoci vengono aggregati e deve corrispondere a sortKeyexpr.
Esempi
-- 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