Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
S’applique à :
Databricks SQL
Databricks Runtime 16.4 et versions ultérieures
Retourne les valeurs STRING et BINARY concaténées au sein d’un groupe.
Cette fonction est un alias pour la fonction listagg.
Syntaxe
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 ]
Cette fonction peut également être appelée en tant que fonction de fenêtre en utilisant la OVER si la WITHIN GROUP et la FILTER sont omises.
Les arguments
exprExpression qui prend la valeur d’un
STRINGouBINARY.NULLles valeurs sont ignorées.delimiterExpression constante correspondant au type utilisé
exprpour séparer les valeurs concaténées. La valeur par défaut est une chaîne vide ('') pourSTRINGet un binaire de longueur nulle (''::BINARY) pourBINARY.ORDER BYExpression utilisée pour classer les valeurs avant la concaténation. La valeur par défaut est l’ordre des lignes du groupe.
sortKeyExpression sur laquelle l’ordre est défini. Les références de colonne au sein de
sortKeydoivent également être présentes dansexpr.sort_direction
Spécifie l’ordre de tri pour l’expression Order By.
-
ASC: la direction de tri est croissant pour cette expression. -
DESC: l’ordre de tri est croissant pour cette expression.
Si l’ordre de tri n’est pas spécifié explicitement, les lignes par défaut sont triées par ordre croissant.
-
nulls_sort_order
Spécifie éventuellement si les valeurs NULL sont retournées avant/après les valeurs non NULL. Si
null_sort_ordern’est pas spécifié, les valeurs NULL sont triées en premier si l’ordre de tri estASCet les valeurs NULL sont triées en dernier si l’ordre de tri estDESC.-
NULLS FIRST:NULLles valeurs sont retournées en premier, quel que soit l’ordre de tri. -
NULLS LAST:NULLles valeurs sont retournées en dernier, quel que soit l’ordre de tri.
-
cond: expression facultativeBOOLEANfiltrant les lignes utilisées pour l’agrégation.
Retours
Un STRING si expr est un STRING, BINARY sinon.
Si DISTINCT est spécifié, seules les valeurs uniques sont agrégées et le sortKey doit correspondre au expr.
Exemples
-- 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