Teradata Databaseは集約グループ内の項目ごとに1回ずつ、そのグループの詳細値を入力引数として集約UDFを呼び出します。サマリー情報を累積していくため、集約関数では、呼び出しごとにコンテキストが保持されます。
グループの作成や集約UDFのコーディングでのグループの処理は、Teradataで自動的に処理されるため、特に知識は必要ありません。必要なのは、渡されるデータを組み合わせて、希望する結果を得るための基本的なアルゴリズムを記述することだけです。
あるグループに対する集約関数の処理フローは、次のテーブルに示すとおりです。ウィンドウ集約関数のフローについては、ウィンドウ集約関数の本体を参照してください。
フェーズ | aggregation_phase引数の値 | 説明 |
---|---|---|
1 | AGR_INIT | Teradata Databaseが、ある集約グループに対して初めて集約UDFを呼び出した場合です。 関数では、次のことを実行する必要があります。
|
2 | AGR_DETAIL | このフェーズでは、各グループごとに、集約の対象となる行ごとに1回ずつ関数が呼び出されます。 関数では、関数の引数入力データと、そのグループに対して定義されている中間記憶域を結合する必要があります。 |
3 | AGR_COMBINE | このフェーズでは、特定のグループについて、異なるAMPによる結果を組み合わせします。 関数では、渡された2つの中間記憶域を組み合わせする必要があります。 |
4 | AGR_FINAL | このグループに対する入力は、もうないはずです。関数では、そのグループの最終結果を作成する必要があります。 |
5 | AGR_NODATA | このフェーズが関係してくるのは、集約するデータが何もない場合だけです。 |