On 10/12/19 11:23 AM, Richard Damon wrote: > On 10/12/19 10:08 AM, Bart Smissaert wrote: >> How do I get the standard deviation of the last 4 entries (there could be >> less than 4) of an integer column grouped by an integer ID entry in another >> column in the same table. >> >> So data could be like this: >> >> ID xValue >> ---------------- >> 1 130 >> 1 120 >> 1 140 >> 1 100 >> 1 110 >> 2 140 >> 2 130 >> 2 150 >> >> I know that SQLite doesn't have the SQRT function (and I can't make a UDF >> as I am doing this in an Android phone app) but I can do this last step in >> code. >> >> RBS > I may not be the best at forming the SQL to do this, but here is the > general idea I would use. First use a query with ORDER BY DECR and LIMIT > to get the last 4 items, and select the value, and a computer column of > value2 = value * value. > > Then over this result, do a GROUP BY to compute N = count(value), S = > sum(value), S2 =sum(value2) > > You can then compute the variance (standard deviation squared) from the > equation > > Variance = S2 / N - (S / N) * (S / N) > > This equation assumes that you are working with the full population and > not just a sample, if you data is to be considered a sample you need to > make a small adjustment in the formula to > > Estimated Variance of Popultion = S2 / (N-1) - S * S / (N * (N-1)) > > (Sorry about the messed up subject, reposting to fix it)
-- Richard Damon _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users