SQL Server 2008 R2中的统计过程控制图

时间:2012-05-22 09:24:17

标签: sql-server-2008 statistics sql-server-2008-r2

我希望你能指出我正确的方向。

我正在尝试使用SQL Server 2008生成控制图(http://en.wikipedia.org/wiki/Control_chart)。创建基本控制图很容易。我只计算平均值和标准差,然后绘制它们。

复杂位(至少对我而言)是我希望图表在识别步骤变化时重置平均值和控制限制。

目前我只对识别阶跃变化的一种非常简单的方法感兴趣,5个点连续出现在均值之上或之下。有更复杂的方法来识别它们(http://en.wikipedia.org/wiki/Western_Electric_rules),但我只是想先将它开始实现。

我解决的过程是:

  1. 按月份和年份汇总和排序,应用行号。
  2. 计算总体平均值
  3. 确定每个数据项是否高于,低于或等于平均值​​,标记为+1,-1或0。
  4. 确定何时连续5个数据项高于或低于均值(目前使用光标)。
  5. 如果5分高于平均值或5分低于平均值,则重新计算均值。
  6. 重复直至表格结尾。
  7. 这种过程在SQL服务器中是否可行?感觉我可能需要一个递归的UDF,但递归有点超出我的想法!

    非常感谢正确方向的推动!

    干杯

1 个答案:

答案 0 :(得分:4)

好的,我最终只是使用WHILE循环来迭代。我不会发布完整的代码,但步骤是:

  1. 设置用户定义的表数据类型,以便将数据传递到存储过程参数。

  2. 编写随附的存储过程,使用行号和while循环迭代输入表中的每个数据值,然后使用当前行号对输入数据的子集进行基于集合的处理(以检查是否以下5点高于/低于平均值,并重新计算此标志跳闸时的平均值和标准偏差。)

  3. 输出包含原始值,行号,月份,平均值,控制上限和控制下限的表格。

  4. 我还有一个可以根据完整的Nelson规则运行并运行,并且还会说明数据失败的测试。

    目前我只是在我进一步开发它时才使用它所以我设置了一个带有一些VBA的Excel工作表来动态构造一个SQL字符串,它作为命令文本传递给数据透视表。这样你就可以用不同的数据集重复ping USP,并且还可以改变程序运行方式的一些其他参数(例如调整控制限制等)。

    最终,我希望能够将结果数据传递给我们正在处理的Business Objects报告和仪表板。