0

我的表中有一些人为错误条目。有些缺少零,有些材料比应有的要多,依此类推。所以我试图扫描整个表以在条目组中找到一些错误。表是这样的:

| Work Order | Product | Material Qty
---------------------------------
| 1          | Item A  | 10
| 2          | Item A  | 25
| 3          | Item A  | 12
| 4          | Item A  | 9
| 5          | Item X  | 52
| 6          | Item X  | 20
| 7          | Item X  | 23
| 8          | Item X  | 24
| 9          | Item X  | 2
| 10         | Item Z  | 20
| 11         | Item Z  | 5
---------------------------------

现在,WO 和 WO 项不是那么顺序的,我在这里写它是顺序的,只是为了举例。

正如你所看到的,那些项目 A 应该有 10 左右的数字,给或拿一些。项目 X 应该在 22 左右,给予或接受一些,同时查询应该将项目 Z 标记为所有可疑,因为没有足够的数据进行关联。所以我需要隔离 WO 编号 2、5 和 9、10 和 11 以供人们审核。知道怎么做吗?

我一直在尝试创建它们的平均值,并使用百分比来消除它们。但有时,百分比数字变化太大。而对于项目Z,没有足够的数据来选择哪个数字是正常数字,哪个数字是不规则数字,我需要标记它们以进行验证,在这种情况下,降低到百分比将无济于事.

此外,如果我将它们降低到相对于平均值的变异百分比,它的分布仍然太宽而无法标记其中之一。

有任何想法吗?因为这次我真的被困住了。

4

1 回答 1

2

从统计的角度来看,您可能希望从STDEV 标准差函数开始。

select * 
from

(       
select *,
   AVG(qty) OVER( Partition by product) av,
   STDEV(qty) OVER( Partition by product) sd,
   COUNT(*) over (Partition by product) c
 from yourtable
) v
where ABS(qty-av)>sd or c<3
于 2013-09-02T10:41:29.903 回答