Какова точная разница между скалярными функциями SQL и агрегатными функциями SQL в SQLite?
При попытке создать новую функцию в 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
должно быть нулевым.Мне нужно знать, какой использовать, и в чем разница.