SQL - 统计正态分布量范围

时间:2016-08-02 02:02:50

标签: sql sql-server statistics

我有一个SQL Server数据库表,其中包含大约100K的发票记录(日期,提供商,类型和金额)。

这是样本数据:

enter image description here

我想根据数量将数据分为4个部分。

  1. 组1:< X1
  2. 第2组:X1与...之间X2
  3. 第3组:在X2和&之间X3
  4. 第4组:> X3
  5.   

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

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

    有关如何执行此操作的任何线索,以便值对报告有意义,因此我可以生成如下图表:

    enter image description here

1 个答案:

答案 0 :(得分: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标记定义了Amount分布的 quartiles 。子查询可用于均值和标准偏差,AVGSTDEVP函数可用于此。