例: 入れ子になった変数による関数処理 - Teradata Database - Teradata Vantage NewSQL Engine - 例: 入れ子になった変数による関数処理

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

関数SparseSVMTrainerの関数マッピング定義user_SparseSVMTrainerには、入れ子になったパラメータが含まれます。

Var1(old_var1),
var2(old_var2||'_'|| var3),
old_var1(var3)
CREATE FUNCTION MAPPING user_SparseSVMTrainer
FOR SparseSVMTrainer SERVER coprocessor
Using
ANY   IN TABLE,
inputtable IN TABLE,
ModelTable,
IDColumn,
AttributeColumn,
LabelColumn ('species') ,
Valuecolumn(var2 || '_' || var1) ,
MaxStep (var1) ,
Seed ('0'),
var1(old_var1),
var2(old_var2||'_'|| var3),
old_var1(var3),
var3(10)
;

このSELECT文は、var3old_var2の値を指定します。

SELECT * FROM user_SparseSVMTrainer (
ON svm_iris_input_train as InputTable PARTITION BY 1
USING
ModelTable ('svm_iris_model')
LabelColumn ('species')
MaxStep (10)
Seed ('1')
var3 (2)
old_var2('sample')
IDColumn('id')
AttributeColumn('attribute')
) as dt1;

クエリーは次のように書き換えられます。var2は、old_var2var3の連結式に基づいてsample_2に解決されます。マッピング定義では、old_var1の代わりにvar1が使用されます。old_var1var3の代わりに使用され、クエリーでは2として指定されます。ValueColumnに定義された連結式はsample_2_2に解決されます。

SELECT * FROM user_SparseSVMTrainer (
ON svm_iris_input_train as InputTable PARTITION BY 1
USING
ModelTable ('svm_iris_model')
LabelColumn ('species')
Valuecolumn('sample_2_2')
MaxStep (10)
Seed ('1')
IDColumn('id')
AttributeColumn('attribute')
) as dt1;

このSELECT文は、var1var2の値を指定します。

SELECT * FROM user_SparseSVMTrainer (
ON svm_iris_input_train as InputTable PARTITION BY 1
USING
ModelTable ('svm_iris_model')
LabelColumn ('species')
IDColumn('id')
AttributeColumn('attribute')
Seed ('1')
var1 (2)
var2('sample')
) as dt1;

クエリーは次のように書き換えられます。関数マッピングは、ValueColumnvar1var2の連結として定義します。MaxStepvar1の代わりに使用されます。

SELECT * FROM user_SparseSVMTrainer (
ON svm_iris_input_train as InputTable PARTITION BY 1
USING
ModelTable ('svm_iris_model')
IDColumn('id')
AttributeColumn('attribute')
LabelColumn ('species')
Valuecolumn('sample_2')
MaxStep (2)
Seed ('1')
) as dt1;

このSELECT文は、old_var1var2の値を指定します。

SELECT * FROM user_SparseSVMTrainer (
ON svm_iris_input_train as InputTable PARTITION BY 1
USING
ModelTable ('svm_iris_model')
LabelColumn ('species')
IDColumn('id')
AttributeColumn('attribute')
Seed ('1')
old_var1 (2)
var2('sample')
) as dt1;

クエリーは次のように書き換えられます。関数マッピング定義に従って、var1は値2を使用してold_var1の代わりに使用されます。ValueColumn連結式はsample_2に解決されます。MaxStepは、値2でvar1の代わりに使用されます。

SELECT * FROM user_SparseSVMTrainer (
ON svm_iris_input_train as InputTable PARTITION BY 1
USING
ModelTable ('svm_iris_model')
LabelColumn ('species')
IDColumn('id')
AttributeColumn('attribute')
Valuecolumn('sample_2')
MaxStep (2)
Seed ('1')
) as dt1;