SQLite中标量SQL函数和聚合SQL函数之间的区别

Bha*_*ava 1 c++ sqlite

SQLite中标量SQL函数和聚合SQL函数之间的确切区别是什么?

尝试在SQLite中创建新函数时,我遇到以下代码问题:

 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*)
 );
Run Code Online (Sandbox Code Playgroud)

对于标量SQL函数,xStepxFinal必须为null,对于聚合SQL函数,xFunc必须为null.我需要知道使用哪一个以及有什么区别.

Dan*_*den 14

标量函数是,在操作的函数值-即,它需要一个(或多个)输入值作为直接参数,并返回一个值.

聚合功能是,在操作的功能集合的数据-即,它需要一个完整的数据作为输入,并返回从集合中的所有值计算的值.

顺便说一句,这些是您可以在任何字典中找到的"标量"和"聚合"的标准定义,如果您搜索"标量函数"和"聚合函数",所有这些链接都在Google搜索结果的前五位. 这是确定的,我们要的StackOverflow成为这样的问题的"权威"的答案,但在"教人以渔"我觉得有必要提醒你,你应该做自己的功课要求其他人来帮忙解答之前的利益你的问题.