17.00 - 17.05 - 集約関数の基本アルゴリズム - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

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 このフェーズが関係してくるのは、集約するデータが何もない場合だけです。