Todos os produtos
Search
Central de documentação

MaxCompute:ARRAY_REDUCE

Última atualização: Jun 26, 2026

Agrega os elementos do array a.

Formato do comando

R array_reduce(array<T> <a>, buf <init>, function<buf, T, buf> <merge>, function<buf, R> <final>)

Descrição dos parâmetros

  • a: obrigatório. Array. Em array<T>, T indica o tipo de dados dos elementos, que podem ser de qualquer tipo.

  • init: obrigatório. Valor inicial do resultado intermediário da agregação.

  • merge: obrigatório. Função (interna ou personalizada) ou expressão que opera cada elemento do array a com o resultado intermediário. Os parâmetros de entrada são o elemento do array a e o valor init.

  • final: obrigatório. Função (interna ou personalizada) ou expressão que converte o resultado intermediário em resultado final. O parâmetro de entrada é a saída de merge, e R representa o tipo de dados do resultado.

Valor de retorno

O tipo do resultado retornado corresponde ao tipo de saída definido pela função final.

Exemplos de uso

--返回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);

Funções relacionadas

  • ARRAY_REDUCE é uma função de tipo complexo. Para outras funções de processamento de tipos complexos (como ARRAY, MAP, STRUCT e JSON), consulte Complex type functions.

  • Os exemplos de ARRAY_REDUCE utilizam o operador ->. Para mais informações sobre o uso de -> em funções Lambda, consulte Lambda functions.