UDFのAGR_COMBINE集約フェーズでは、集約の対象となるグループごとに、2つの中間集約記憶域を結合して1つの記憶域にする必要があります。関数が結合する記憶域は、特定のグループに対する異なるAMPからの結果です。
それらの記憶域は、FNC_Context_t関数コンテキスト構造体パラメータのinterim1およびinterim2によって参照されます。interim2のポインタは、interim1によって指定される集約記憶域と組み合わせする対象となる集約記憶域を参照します。
最終結果は、集約関数の処理対象となるグループごとに1つずつ、集約記憶域を作成することです。
標準偏差関数のサンプルでは、FNC_Context_t.interim2関数引数を参照するAGR_Storageへの、さらに別のポインタを定義できます。引数名をfctxとすると、s2という名前でAGR_Storageへのポインタを定義する文は次のとおりです。
AGR_Storage *s2 = fctx->interim2;
集約記憶域を組み合わせする文は、次のとおりです。
s1->n += s2->n; s1->x_sq += s2->x_sq; s1->x_sum += s2->x_sum;
AGR_COMBINE集約フェーズは、ウィンドウ集約関数には適用しません。