2011-07-17 11 views
0

スカラーSQL関数とSQLiteの集約SQL関数の正確な違いは何ですか?スカラーSQL関数とSQLiteの集約SQL関数の相違

SQLiteの中で新しい関数を作成しようとしたとき、私は次のコードで、問題を取得しています:、スカラーSQL関数については

int sqlite3_create_function(
    sqlite3 *db, 
    const char *zFunctionName, 
    int nArg, 
    int eTextRep, 
    void *pApp, 
    void (*xFunc)(sqlite3_context*,int,sqlite3_value**), 
    void (*xStep)(sqlite3_context*,int,sqlite3_value**), 
    void (*xFinal)(sqlite3_context*) 
); 

xStepxFinalがnullでなければならない、と集計SQL関数について、 xFuncはnullにする必要があります。私はどちらを使うべきか、違いは何かを知る必要があります。

+7

私はあなたが耳を傾ける必要があると思います –

+0

あなたのキャップロックをオフにした場合、あなたは答えを得るでしょう。 –

+3

**ステップ1:**以前の質問に対する回答を受け入れます。 **ステップ2:**キャプテンロックを無効にする – PengOne

答えて

13

scalar functionは、scalar値で動作する関数です。つまり、1つ(またはそれ以上)の入力値を引数として直接取り、値を返します。

aggregate functionaggregateデータ上で動作する関数である - つまり、それは完全が入力としてデータのを設定し、セット内のすべての値から計算される値を返しとります。

ところで、これらはすべての辞書で見つけることができる「スカラー」と「集約」の標準的な定義であり、「スカラー関数」と「スカラー関数」を検索すると上位5つのGoogle検索結果になります"集合関数"。 That's OK, we want StackOverflow to become the "definitive" answer for questions like thisしかし、 "人を魚に教える"という目的のために、あなたの質問に答えるのを他の人に依頼する前に、自分の宿題をしなければならないことを思い出させる。