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.
Fonction
S’applique à :
Databricks SQL
Databricks Runtime
Agrège les éléments d’un tableau à l’aide d’un agrégateur personnalisé. Cette fonction est un synonyme de reduce fonction.
Syntaxe
aggregate(expr, start, merge [, finish])
Les arguments
-
expr: expression ARRAY. -
start: une valeur initiale de n’importe quel type. -
merge: fonction lambda utilisée pour agréger l’élément actuel. -
finish: fonction lambda facultative utilisée pour finaliser l’agrégation.
Retours
Le type de résultat correspond au type de résultat de la fonction lambda finish s’il existe ou start.
Applique une expression à un état initial et à tous les éléments du tableau et réduit cette valeur à un seul état. L’état final est converti dans le résultat final en appliquant une fonction finish.
La fonction merge utilise deux paramètres. Le premier étant l’accumulateur, le deuxième l’élément à agréger.
L’accumulateur et le résultat doivent être du type start.
La fonction finish facultative accepte un paramètre et retourne le résultat final.
Exemples
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x);
6
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
60
> SELECT aggregate(array(1, 2, 3, 4),
named_struct('sum', 0, 'cnt', 0),
(acc, x) -> named_struct('sum', acc.sum + x, 'cnt', acc.cnt + 1),
acc -> acc.sum / acc.cnt) AS avg
2.5