例: 連結変数式に指定された単一の値
次の例では、関数処理でMaxStepがMaxnumに置換されています。ただし、AttributeValueColumnに値がないため、ValueColumnは実行されません。
これは、関数SparseSVMTrainerの関数マッピング定義usr_SVMSparseです。ValueColumn値は、変数AttributeValueColumnおよびMaxnumを含む連結変数式で構成されます。
CREATE FUNCTION MAPPING usr_SVMSparse FOR SparseSVMTrainer SERVER TD_SERVER_DB.coprocessor USING InputTable IN TABLE , ModelTable OUT TABLE , IDColumn , SampleIdColumn , AttributeColumn, LabelColumn, ValueColumn(AttributeValueColumn||'_'||Maxnum), HashProjection , "Hash" , HashBuckets , Cost , Bias , ClassWeights , MaxStep(Maxnum) , Epsilon , Seed , SequenceInputBy ;
SELECT文は、Maxnumの値として150を指定します。
SELECT * FROM usr_SVMSparse ( ON svm_iris_input_train as InputTable OUT TABLE ModelTable (svm_iris_model) USING SampleIDColumn ('id') AttributeColumn ('attribute') LabelColumn ('species') Maxnum (150) Seed ('0') ) as dt;
クエリーは実行時、関数SparseSVMTrainerによる処理のため、次のように書き換えられます。関数マッピング定義に従って、変数MaxStepはMaxnumに置き換えられます。SELECT文がAttributeValueColumnの値を指定していないため、ValueColumnは処理用に実行されません。
SELECT * FROM SparseSVMTrainer ( ON svm_iris_input_train as InputTable OUT TABLE ModelTable (svm_iris_model) USING SampleIDColumn ('id') AttributeColumn ('attribute') LabelColumn ('species') MaxStep (150) Seed ('0') ) as dt;
例: 実行した連結変数式を持つパラメータ
関数マッピング定義usr_SVMSparseには、AttributeValueColumnとMaxnumで構成される連結変数式を持つパラメータValueColumnが含まれています。
CREATE FUNCTION MAPPING usr_SVMSparse FOR SparseSVMTrainer SERVER TD_SERVER_DB.coprocessor USING InputTable IN TABLE , ModelTable OUT TABLE , IDColumn , SampleIdColumn , AttributeColumn, LabelColumn, ValueColumn(AttributeValueColumn||'_'||Maxnum), HashProjection , "Hash" , HashBuckets , Cost , Bias , ClassWeights , MaxStep(Maxnum) , Epsilon , Seed , SequenceInputBy ;
SELECT文は、AttributeValueColumnとMaxnumの値を指定します。
SELECT * FROM usr_SVMSparse ( ON svm_iris_input_train as InputTable OUT TABLE ModelTable (svm_iris_model) USING SampleIDColumn ('id') AttributeColumn ('attribute') LabelColumn ('species') AttributeValuecolumn('value') Maxnum (150) Seed ('0') ) as dt;
このクエリーは、実行時に次のように書き換えられます。ValueColumnの連結変数式はvalue_150に解決されます。関数マッピング定義はMaxStepをMaxnumに対して置き換えるため、Maxstepは値150で実行されます。
SELECT * FROM SparseSVMTrainer ( ON svm_iris_input_train as InputTable OUT TABLE ModelTable (svm_iris_model) USING SampleIDColumn ('id') AttributeColumn ('attribute') LabelColumn ('species') Valuecolumn('value_150') MaxStep (150) Seed ('0') ) as dt;
例: スカラー サブクエリーの変数置換
次の例では、SELECT文内のスカラー サブクエリーが実行され、AttributeValueColumnとMaxnumの値が提供されます。クエリーは、実行時にValueColumnとMaxStepの解決済みの値に置き換わるように書き換えられます。
関数マッピング定義usr_SVMSparseには、AttributeValueColumnとMaxnumで構成される連結変数式を持つパラメータValueColumnが含まれています。
CREATE FUNCTION MAPPING usr_SVMSparse FOR SparseSVMTrainer SERVER TD_SERVER_DB.coprocessor USING InputTable IN TABLE , ModelTable OUT TABLE , IDColumn , SampleIdColumn , AttributeColumn, LabelColumn, ValueColumn(AttributeValueColumn||'_'||Maxnum), HashProjection , "Hash" , HashBuckets , Cost , Bias , ClassWeights , MaxStep(Maxnum) , Epsilon , Seed , SequenceInputBy ;
SELECT文は、AttributeValuecolumnおよびMaxnumのスカラー サブクエリーを指定します。
SELECT * FROM usr_SVMSparse ( ON svm_iris_input_train as InputTable OUT TABLE ModelTable (svm_iris_model) USING SampleIDColumn ('id') AttributeColumn ('attribute') LabelColumn ('species') AttributeValuecolumn(SELECT colvarch from ssqtbl WHERE username=CURRENT_USER) Maxnum (SELECT colint FROM ssqtbl WHERE username=USER) Seed ('0') ) as dt;
クエリーは実行時、関数SparseSVMTrainerによる処理のために次のように書き換えられます。AttributeValueColumnのスカラー サブクエリーはvalueに解決され、Maxnumのスカラー サブクエリーは1に解決されます。ValueColumnの連結変数式はvalue_1に解決されます。関数マッピング定義に従って、MaxStepはMaxnumに置き換えられます。
SELECT * FROM SparseSVMTrainer ( ON svm_iris_input_train as InputTable OUT TABLE ModelTable ('svm_iris_model') USING SampleIDColumn ('id') AttributeColumn ('attribute') LabelColumn ('species') Valuecolumn('value_1') MaxStep (1) Seed ('0') ) as dt;