配列aの要素を集計します。
構文
R array_reduce(array<T> <a>, buf <init>, function<buf, T, buf> <merge>, function<buf, R> <final>)パラメーター
a: 必須です。 このパラメーターは、配列を指定します。
array<T>のTは、配列内の要素のデータ型を指定します。 要素は任意のデータ型にすることができます。init: 必須です。 要素の集計に使用される中間結果の初期値。
merge: 必須です。 Array Aの各要素と中間結果に対して操作を実行するために使用される組み込み関数、ユーザー定義関数、または式を指定します。 この関数または式は、Array aの要素とinitパラメーターを入力パラメーターとして使用します。
final: 必須です。 中間結果を最終結果に変換するために使用される組み込み関数、ユーザー定義関数、または式。 この関数または式は、mergeの結果を入力パラメーターとして使用します。 Rは、出力のデータ型を指定します。
戻り値
戻り値のデータ型は, finalに指定したデータ型と同じです。
例
-- 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);