2016-04-06 78 views
-1

我在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

計算方差的平方根。方差是平均值(值的平方)和平均值的平方之差,即和(xx)/ 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