全部產品
Search
文件中心

MaxCompute:ARRAY_REDUCE

更新時間:Jun 19, 2024

對ARRAY數組a中的元素進行彙總。

命令格式

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

參數說明

  • a:必填。ARRAY數組。array<T>中的T指代ARRAY數組元素的資料類型,數組中的元素可以為任意類型。

  • init:必填。用於彙總的中間結果的初始值。

  • merge:必填。將ARRAY數組a中的每一個元素與中間結果進行運算的函數(內建函數或自訂函數)或運算式。它的兩個輸入參數為ARRAY數組a的元素和init

  • final:必填。將中間結果轉換為最終結果的函數(內建函數或自訂函數)或運算式。它的輸入參數為merge運行結果,R指代輸出結果的資料類型。

傳回值說明

返回結果類型與final函數定義的輸出結果類型一致。

使用樣本

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

相關函數

  • ARRAY_REDUCE函數屬於複雜類型函數,更多對複雜類型資料(例如ARRAY、MAP、STRUCT、JSON資料)的處理函數請參見複雜類型函數

  • ARRAY_REDUCE函數使用樣本中涉及->的使用,關於Lambda函數->的介紹,詳情請參見Lambda函數