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*)
);
对于标量SQL函数,xStep
和xFinal
必须为空,对于聚合SQL函数,xFunc
必须为空。
标量函数是操作标量值的函数——也就是说,它直接接受一个(或多个)输入值作为参数并返回一个值。
aggregate函数是对聚合数据进行操作的函数——也就是说,它接受完整的数据集作为输入,并返回从该集合中的所有值计算得出的值。顺便说一下,这些是"标量"one_answers"聚合"的标准定义,你可以在任何字典中找到,如果你搜索"标量函数"one_answers"聚合函数",所有这些链接都在谷歌搜索结果的前五名。没关系,我们希望StackOverflow成为这类问题的"权威"答案,但出于"教人钓鱼"的兴趣,我觉得有必要提醒你,在让别人帮助回答你的问题之前,你应该做自己的功课。