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,而分母是不能为零的,当然如果只有一笔数据,那方差也失去了其存在的意义了
来源: