aggregate
功能
適用于: Databricks SQL Databricks Runtime
使用自訂匯總工具匯總陣列中的專案。 此函式與 reduce 函式同義。
語法
aggregate(expr, start, merge [, finish])
參數
expr
:ARRAY 運算式。start
:任何類型的初始值。merge
:用來匯總目前專案的 Lambda 函式。finish
:選擇性 Lambda 函式,用來完成匯總。
返回
如果存在 或 start
,結果類型就會符合 Lambda 函式的結果型 finish
別。
將運算式套用至初始狀態和陣列中的所有元素,並將此值縮減為單一狀態。 最終狀態會藉由套用函 finish
式來轉換成最終結果。
函式 merge
會採用兩個參數。 第一個是累積器,第二個是要匯總的專案。
累積器和結果必須是 的型別 start
。
選擇性 finish
函式會採用一個參數,並傳回最終結果。
例子
> 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