1.偏差:一組數據偏離其平均數的值
2.方差:各個偏差的平方的平均數
3.標准偏差:方差的平方根
SQL SERVER中關於方差的函數:
1.STDEV
返回給定表達式中所有值的統計標准偏差.
2.STDEVP
返回給定表達式中所有值的填充統計標准偏差.
3.VAR
返回給定表達式中所有值的統計方差。
4.VARP
返回給定表達式中所有值的填充的統計方差。
四個函數的區別與聯系:
1.STDEV求的是樣本的標准差,STDEVP求的是總體的標准差,二者的分母不同,前者是n-1,后者是N.
2.VAR是樣本的方差,VARP是總體的方差
3.STDEV=SQRT(VAR),STDEVP=SQRT(VARP)
手工實現方差的計算:
DECLARE @AVG DECIMAL(6,2)
SELECT @AVG=AVG(ActualSoldQty*1.0)
FROM tblHistoricAvg
SELECT @AVG=AVG(ActualSoldQty*1.0)
FROM tblHistoricAvg
SELECT SUM(SQUARE (ActualSoldQty-@AVG))/COUNT(*) AS 'VARP'
SQRT(SUM(SQUARE(ActualSoldQty-@AVG))/COUNT(*)) AS 'STDEVP',
SUM(SQUARE(ActualSoldQty-@AVG))/(COUNT(*)-1) AS 'VAR',
SQRT(SUM(SQUARE(ActualSoldQty-@AVG))/(COUNT(*)-1)) AS 'STDEV'
FROM tblHistoricAvg
FROM tblHistoricAvg
其中tblHistoryAvg為測試用的表
上述語句跟用SQL SERVER自帶的方差函數產生的結果是一樣的,當然上面的語句要排除只有一筆數據的情況,因為此時count(*)-1=0,而分母是不能為零的,當然如果只有一筆數據,那方差也失去了其存在的意義了
來源: