我在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`
答案 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`