例: 変数のデフォルト値を使用した関数処理 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/vjt1596846980081.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

関数AllPairsShortestPathに対する関数マッピング定義usr_AllPairsShortestPathには、変数TargetKeyの連結式と、EdgeWeightおよびDistanceのデフォルト値が含まれます。

CREATE FUNCTION MAPPING usr_AllPairsShortestPath
FOR AllPairsShortestPath SERVER TD_SERVER_DB.coprocessor
USING
vertices(vertex) IN TABLE ,
edges(edge) IN TABLE ,
sources(source) IN TABLE ,
targets(trgt) IN TABLE ,
TargetKey(GroupColumn||'_'||Distance) ,
EdgeWeight('calls') ,
MaxDistance(Distance) , Distance(1),
Directed ,GroupSize ,SequenceInputBy;

SELECT文は、変数GroupColumnの値を指定します。

SELECT * FROM usr_AllPairsShortestPath (
ON callers AS vertices PARTITION BY callerid
ON calls AS edges PARTITION BY callerfrom
USING
GroupColumn('tabl')
) as dt ORDER BY source, target;

実行依頼時に、クエリーは次のように書き換えられます。連結変数式を解決するため、マッピング定義がDistanceのデフォルト値を提供し、クエリーがGroupColumnの値を提供するため、TargetKeyが含められます。

マッピング定義に従って、MaxDistanceDistanceの代わりに使用されます。マッピング定義がデフォルト値を提供するため、EdgeWeightが含められます。

SELECT * FROM AllPairsShortestPath (
ON callers AS vertices PARTITION BY callerid
ON calls AS edges PARTITION BY callerfrom
USING
TargetKey('tabl_1')
MaxDistance('1')
EdgeWeight('calls')
) as dt ORDER BY source, target;