One thing to point out, it sounds like you are dealing with a sample,
and I think you want to get the estimated standard deviation of the
process, which says you really want to use the adjusted formula that
uses N-1 in the denominator, as the expected value of the standard
deviation of a sample is smaller than the standard deviation of the
process/population.

One quick test is to think what you would do if you had just a single
point.  Does this mean you really have a Standard Deviation of Zero (as
that is the SD of a population of one) or does it mean you don't have an
idea of what the SD of the population is.

On 10/12/19 12:13 PM, Bart Smissaert wrote:
> Thanks, I do know how to calculate the SD in code, but I thought in this
> particular case it might be faster to do this in SQL.
> Only problem is the square root and for that reason I will test this in
> code as well and see how it compares with SQL.
>
> I found a way to get the one from last step, so that is without doing the
> final square root step.
> Note that this has to do with a number of systolic blood pressure readings
> and I am actually taking the last 6 and  that is useful as due
> to treatment the SD often will be less for the later values:
>
> UPDATE QR3PARAMS SET AVG_BP =
> (SELECT AVG(SYST) FROM (SELECT SYSTOLIC AS SYST FROM BP WHERE ID =
> QR3PARAMS.ID ORDER BY ENTRY_DATE DESC LIMIT 6))
>
> UPDATE QR3PARAMS SET DEV_BP =
> (SELECT AVG(SYST * SYST) FROM (SELECT SYSTOLIC - QR3PARAMS.AVG_BP AS SYST
> FROM BP WHERE ID = QR3PARAMS.ID ORDER BY ENTRY_DATE DESC LIMIT 6))
>
> RBS
>
>
>
>
> On Sat, Oct 12, 2019 at 4:21 PM Keith Medcalf <kmedc...@dessus.com> wrote:
>
>> The Standard Deviation of the Population is the Square Root of the mean of
>> the second order differences.
>>
>> For your input values, you calculate the mean.
>> Then you calculate the mean of the square of the difference between each
>> value and the mean of the values.
>> Then you take the square root of that.
>>
>> You can also compute it using a running calculation (generally more
>> accurate on IEEE754 hardware).
>>
>> So just retrieve the values you are interested in and do the calculations
>> in your application.  That is, if you only want FOUR values, then write a
>> query that returns only those FOUR values, and use those to computer the
>> answer.  While you can do all the calculations (including the Square Root)
>> in SQL, it is likely to be horrendously slow.
>>
>> However, before you can do *ANYTHING* else, you need to be able to
>> demonstrate that you can write a select statement that retrieves the values
>> you want to work on, only the values you want to work on, and nothing but
>> the values you want to work on.  Having 47,000 values and sauing that you
>> would like to find the standard deviation of some set of four of them is
>> entertaining, but not useful in any way.
>>
>> --
>> The fact that there's a Highway to Hell but only a Stairway to Heaven says
>> a lot about anticipated traffic volume.
>>
>>> -----Original Message-----
>>> From: sqlite-users <sqlite-users-boun...@mailinglists.sqlite.org> On
>>> Behalf Of Bart Smissaert
>>> Sent: Saturday, 12 October, 2019 08:09
>>> To: General Discussion of SQLite Database <sqlite-
>>> us...@mailinglists.sqlite.org>
>>> Subject: [sqlite] Standard deviation last x entries
>>>
>>> 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
>>> _______________________________________________
>>> sqlite-users mailing list
>>> sqlite-users@mailinglists.sqlite.org
>>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>>
>>
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@mailinglists.sqlite.org
>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


-- 
Richard Damon

_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to