SQL SERVER中的方差函数

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

 

 

来源:


posted @ 2012-03-06 10:47  三人行  阅读(10418)  评论(0编辑  收藏  举报