SQL サーバーのデータ列に対して基本的な外れ値フィルターを実行する方法を探しています。
バックグラウンド
さまざまなアクションとそれらのアクションが発生した時刻を含むログ テーブルがあります。2 つの異なるログ イベント タイプ間の平均時間に関するデータを取得しようとしています。DATEDIFF
これらのイベント間の期間をキャプチャするために、単純なクエリ (タイムスタンプ間を使用) を使用しています。現在、AVG
関数を使用して、発生しているこれら 2 つのイベントのペアになっているすべてのインスタンスの平均時間を取得しています。
問題
次の方法を使用して平均化する前に、データセットで外れ値フィルタリングを実行したいと思います。
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で四分位値を決定する最良の方法は何ですか?2番目-これを独自の集計関数として保存してフィルタリングしてから平均化する方法はありますか?