如何用“数字”列计算标准偏差?

时间:2016-04-06 12:28:38

标签: mysql

我在MySQL中有这个表:

value    number_ads
1        3
2        1
3        1
3        1
4        1

我想计算列值的标准偏差,但考虑到值1应该计算3次。

结果应为:

AVG = 2.1429     STD = 1.124858267715973

我尝试了以下请求,但我没有得到好结果:

SELECT 
SUM(value * number_ads) / SUM(number_ads) AS avg,
SQRT((SUM(POW(value, 2)) - POW(2.1429, 2))/SUM(number_ads)) 
FROM `test`

1 个答案:

答案 0 :(得分:0)

计算方差的平方根。方差是(平方值)和平方平均值之间的差值,即Sum(x x)/ Count(n) - 平均值平均值。

SELECT 
SUM(value * number_ads) / SUM(number_ads) AS avg,
SQRT((SUM(POW(value ,2) * number_ads)/SUM(number_ads)) - avg * avg)
FROM `test`

Source