This is Yutaka nakamura in Japan. diff file sqlite-3.2.1's func.c. add stdev() and rr() . . stdev() mean stddev lile MS Excel. . rr() mean RiskReturn( mean 1/CV =μ/σ) pahaps RiskReturn calculate speed fastest SQL in the world. becouse loop time about harf and rr() direct calcrate SQL is noting. Bye! 854,878d853 < static void stdevStep(sqlite3_context *context, int argc, sqlite3_value **argv){ < StdDevCtx *p; < if( argc<1 ) return; < p = sqlite3_aggregate_context(context, sizeof(*p)); < if( p && SQLITE_NULL!=sqlite3_value_type(argv[0]) ){ < p->sum += sqlite3_value_double(argv[0]); < p->sum2 += pow(sqlite3_value_double(argv[0]),2); < p->cnt++; < } < } < static void stdevFinalize(sqlite3_context *context){ < StdDevCtx *p; < p = sqlite3_aggregate_context(context, sizeof(*p)); < if( p && p->cnt>0 ){ < sqlite3_result_double(context,sqrt(((double)p->cnt*p->sum2 - pow(p->sum,2))/((double)p->cnt*((double)p->cnt -1.0)))); < } < } < static void rrFinalize(sqlite3_context *context){ < StdDevCtx *p; < p = sqlite3_aggregate_context(context, sizeof(*p)); < if( p && p->cnt>0 ){ < sqlite3_result_double(context,(p->sum/(double)p->cnt)/sqrt(((double)p->cnt*p ->sum2 - pow(p->sum,2))/((double)p->cnt*((double)p->cnt -1.0)))); < } < } < 1022,1023d996 < { "stdev", 1, 0, 0, stdevStep, stdevFinalize }, < { "rr", 1, 0, 0, stdevStep, rrFinalize },