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 de type ARRAY. Dans
array<T>,Treprésente le type de données des éléments du tableau, qui peuvent être de n'importe quel type.init : obligatoire. Valeur initiale du résultat intermédiaire utilisé pour l'agrégation.
merge : obligatoire. Fonction (intégrée ou personnalisée) ou expression qui combine chaque élément du tableau a avec le résultat intermédiaire. Ses deux paramètres d'entrée sont un élément du tableau a et la valeur init.
final : obligatoire. Fonction (intégrée ou personnalisée) ou expression qui convertit le résultat intermédiaire en résultat final. Son paramètre d'entrée est le résultat de l'exécution de merge ; R représente le type de données du résultat de sortie.
Valeur de retour
Le type du résultat renvoyé correspond au type de sortie défini par la fonction final.
Exemples
--返回6。
select array_reduce(array(1, 2, 3), 0, (buf, e)->buf + e, buf->buf);
--返回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
La fonction ARRAY_REDUCE appartient aux fonctions de types complexes. Pour plus d'informations sur le traitement des données de types complexes (telles que ARRAY, MAP, STRUCT, JSON), consultez la section Complex type functions.
Les exemples d'utilisation de la fonction ARRAY_REDUCE font appel à l'opérateur
->. Pour plus de détails sur les fonctions Lambda utilisant->, consultez la section Lambda functions.