Agrège les éléments du tableau a.
Syntaxe
R array_reduce(array<T> <a>, buf <init>, function<buf, T, buf> <merge>, function<buf, R> <final>)
Paramètres
a : obligatoire. Tableau d'entrée. Le type
Tdansarray<T>indique le type de données des éléments. Ceux-ci peuvent être de n'importe quel type.init : obligatoire. Valeur initiale du résultat intermédiaire servant à l'agrégation des éléments.
merge : obligatoire. Fonction intégrée, fonction définie par l'utilisateur ou expression appliquant une opération à chaque élément du tableau a et au résultat intermédiaire. Elle prend en entrée les éléments du tableau a et le paramètre init.
final : obligatoire. Fonction intégrée, fonction définie par l'utilisateur ou expression convertissant le résultat intermédiaire en résultat final. Elle prend en entrée le résultat de merge. R spécifie le type de données de la sortie.
Valeur de retour
Le type de données de la valeur de retour correspond à celui spécifié pour final.
Exemples
-- The return value is 6.
select array_reduce(array(1, 2, 3), 0, (buf, e)->buf + e, buf->buf);
-- The return value is 2.5.
select array_reduce(array(1, 2, 3, 4), named_struct('sum', 0, 'count', 0), (buf, e)->named_struct('sum', buf.sum + e, 'count', buf.count + 1), buf -> buf.sum / buf.count);
Fonctions connexes
ARRAY_REDUCE est une fonction de type complexe. Pour plus d'informations sur les fonctions liées au traitement des données de types complexes, tels que ARRAY, MAP, STRUCT et JSON, consultez la rubrique Fonctions de type complexe.
Les exemples précédents utilisent la combinaison d'un trait d'union et d'un chevron fermant
(->). Pour plus d'informations sur l'utilisation de cette combinaison(->)dans les fonctions Lambda, consultez la rubrique Fonctions Lambda.