理论知识
- 偏差:一组数据偏离其平均数的值
- 方差:各个偏差的平方的平均数
- 标准偏差:方差的平方根
SQL SERVER中关于方差的函数:
- STDEV
返回给定表达式中所有值的统计标准偏差 - STDEVP
返回给定表达式中所有值的填充统计标准偏差 - VAR
返回给定表达式中所有值的统计方差。 - VARP
返回给定表达式中所有值的填充的统计方差。
四个函数的区别与联系:
- STDEV求的是样本的标准差,STDEVP求的是总体的标准差,二者的分母不同,前者是n-1,后者是N.
- VAR是样本的方差,VARP是总体的方差
- STDEV=SQRT(VAR),STDEVP=SQRT(VARP)
手工实现方差的计算:
DECLARE @AVG DECIMAL(6,2)
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
其中tblHistoryAvg为测试用的表
上述语句跟用SQL SERVER自带的方差函数产生的结果是一样的,当然上面的语句要排除只有一笔数据的情况,因为此时count(*)-1=0,而分母是不能为零的,当然如果只有一笔数据,那方差也失去了其存在的意义了:)
表示去看了下w3cSchool中的,sql方面的东西,然后,不太理解这些函数,然后就~~先转存一波
原文出处