0
以内に私は、SQL Server 2014SQL - フィルタリング窓関数
を使用している私は、グループの90パーセンタイルのすべての値の平均を取ることによって、データセット内のいくつかのノイズを除去しようとしています。
(PARTITION
人口の)平均(PARTITION
人口の)
- 90パーセンタイル値:
SELECT DISTINCT EventLocation, PERCENTILE_CONT(.90) WITHIN GROUP (ORDER BY (DATEDIFF(MINUTE, StartTime, EndTime)) ASC) OVER (PARTITION BY EventLocation) AS 'P90', AVG(DATEDIFF(MINUTE, StartTime, EndTime)) OVER (PARTITION BY EventLocation) AS 'Mean' FROM MyTable ORDER BY N DESC
は現在2つの計算列がある:ここにクエリがあります私は別の列を追加したい:
0 (PARTITION
人口)- 値の平均<が(その
PARTITION
人口の)90パーセンタイル値を=
ような何か:私は正確にはわからない
AVG(DATEDIFF(MINUTE, StartTime, EndTime)) OVER (PARTITION BY EventLocation) HAVING (DATEDIFF(MINUTE, StartTime, EndTime) <= [ 90th percentile value ]) AS 'Mean90'
P90
で定義されている90番目のパーセンタイル値を参照しているため、これにアプローチする方法...ユーザー定義の関数をグループ単位で適用したり、複数のテーブルを作成して結合したり、他の何か。 - 値の平均<が(その
この質問でSQLserver 2014を使用する場合は、タグmysql? – scaisEdge
私はこのためにサブクエリまたはCTEを使用する必要があると思います。 –