さらにUDFのAGR_INIT集約フェーズでは、引数によって渡される最初のデータ値セットを、中間集約記憶域に保存することも必要です。最初のデータ値セットは、そのグループで集約の対象となる最初の行のデータです。
その後、AGR_DETAIL集約フェーズで関数が呼び出されるごとに、関数は引数によって渡される行データを、その特定のグループに対応する中間集約記憶域に累積する必要があります。集約の対象となる各グループごとに、それぞれ別個の中間記憶域があります。
集約記憶域は、FNC_Context_t関数コンテキスト引数のinterim1によって参照されています。
標準偏差のサンプルのx入力引数は、標準偏差の計算の対象となる列です。標準偏差の計算において、この関数はxの値を使用して、次を計算します。
- sum(X2)
- sum(X)
列値を使用して必要な計算を実行し、その結果を中間記憶域に加算するための文は、次のようになります。
s1->n++; s1->x_sq += *x * *x; s1->x_sum += *x;