2016-08-02 426 views
1

我有一个SQL Server数据库表约100K记录的发票(日期,供应商,类型和金额)。SQL - 统计正态分布的数量范围

这是示例数据:

enter image description here

欲组我的数据转换成取决于量4段。

  1. 组1:< X1
  2. 组2:间X1 & X2
  3. 组3:X2之间& X3
  4. 组4:> X3

,其中x1, X2和X3是数量,但这些数额应根据正态分布进行统计计算,因此它们是有意义的。

所以我想我必须得到我的AVG(金额)和我的STDEV(金额),以便知道我的X1,X2和X3值应该是可接受的。

如何做到这一点这样的价值观的任何线索有意义的报告,所以我可以生成这样的图表:

enter image description here

回答

1
SELECT CASE WHEN Amount < (SELECT AVG(Amount) FROM yourTable) - 
          (SELECT STDEVP(Amount) FROM yourTable) 
      THEN 'Group 1' 
      WHEN Amount < (SELECT AVG(Amount) FROM yourTable) THEN 'Group 2' 
      WHEN Amount < (SELECT AVG(Amount) FROM yourTable) + 
          (SELECT STDEVP(Amount) FROM yourTable) 
      THEN 'Group 3' 
      ELSE 'Group 4' 
     END 
FROM yourTable 

说明:

我承担您的边界对应于以下内容:

X1 - One standard deviation below the mean Amount 
X2 - The mean value of the Amount 
X3 - One standard deviation about the mean Amount 

因此我假设你的X标记定义了金额分布的四分位数。子查询可用于平均值和标准偏差,并且AVGSTDEVP函数可用于此。