中間記憶域の結合 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/qwr1571437338192.ditamap
dita:ditavalPath
ja-JP/qwr1571437338192.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

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集約フェーズは、ウィンドウ集約関数には適用しません。