平均処理時間の問題を解決するために取り組んでいます。私は本質的にデータの最高80%だけを平均して異常データを排除しようとしています。グループあたりの平均上位n個のSQL Server
私はグループごとの平均を実行するために、既存のトップNグループソリューションに適応しようとしています。ここではSQL Server 2008の
を使用すると、テーブルがどのように見えるかのサンプルです:
OpID | ProcessMin | Datestamp
2 | 234 | 2012-01-26 09:07:29.000
2 | 222 | 2012-01-26 10:04:22.000
3 | 127 | 2012-01-26 11:09:51.000
3 | 134 | 2012-01-26 05:02:11.000
3 | 566 | 2012-01-26 05:27:31.000
4 | 234 | 2012-01-26 04:08:41.000
私はそれが各 OPIDためProcessMinの最低80%を取る、との平均を取りたいですその配列。どんな助けもありがとう!
* UPDATE *次のような表があると
:私はこの出力を期待
OpID ProcessMin Datestamp
602 33 46:54.0
602 36 38:59.0
602 37 18:45.0
602 39 22:01.0
602 41 36:43.0
602 42 33:00.0
602 49 03:48.0
602 51 22:08.0
602 69 39:15.0
602 105 59:56.0
603 13 34:07.0
603 18 07:17.0
603 31 57:07.0
603 39 01:52.0
603 39 01:02.0
603 40 40:10.0
603 46 22:56.0
603 47 11:03.0
603 48 40:13.0
603 56 25:01.0
:
OptID ProcessMin
602 41
603 34.125
お知らせその10個のデータポイントは、各OPID用があるので、最低8値(80%)のみを平均します。
これは単なる別のサブクエリです。期待される結果とより多くのサンプルデータを示してください。その日の終わりにopidのちょうどグループ – JonH
@ JonH - 上記の例として、いくつかのサンプルと出力を追加しました。サブクエリを実行しようとしましたが、Topがテーブル全体ではなく各OpIDのProcessMinのセットに適用されるようにロジックをセットアップすることに失敗しています。申し訳ありませんが、これはルーキーミスのビットかもしれません。私はこれが分割で達成できるかもしれないと思うが、私の試みは成功しなかった。 –