我正在寻找一种方法来对 SQL Server 中的一列数据执行基本的异常值过滤。
背景
我有一个日志表,其中包含各种操作以及这些操作发生的时间。我正在寻找一些围绕两种不同日志事件类型之间平均时间的数据。我正在使用一个简单的查询(DATEDIFF
在时间戳之间使用)来捕获这些事件之间的持续时间。目前,我使用一个AVG
函数来获取这两个事件发生的所有配对实例的平均时间。
问题
我想在使用以下方法进行平均之前对数据集执行异常值过滤:
Y is an outlier if Y < (Q1 - 1.5 * IQR)
OR
Y is an outlier if Y > (Q3 + 1.5 * IQR)
Where Q1 is the first quartile boundary value,
Q3 is the third quartile boundary value,
and IQR is Q3 - Q1.
我的问题是首先 - 在 SQL 中确定四分位数的最佳方法是什么,其次是 - 有没有一种方法可以将其存储为它自己的聚合函数来过滤然后平均?