【问题标题】:Statistical Process Control Charts in SQL Server 2008 R2SQL Server 2008 R2 中的统计过程控制图
【发布时间】:2012-10-25 22:17:25
【问题描述】:

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

我正在尝试使用 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. 重复直到表格结束。

这种过程在 SQL Server 中是否可行?感觉我可能需要一个递归 UDF,但递归有点超出我的能力!

非常感谢您朝正确的方向轻推!

干杯

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    我还启动并运行了一个基于完整 Nelson 规则的工作,并且还会说明数据失败的测试。

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

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

    【讨论】:

      猜你喜欢
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多