2017-01-14 24 views
0

現在、Oracle SQLを使用しており、データセットから特定のベンチマーク値を抽出するロジックが必要です。Oracle SQLで条件付きパーセンタイルを計算する方法

Article | Sales 
1  | 5 
2  | 0 
3  | 2 
4  | 9 
........| ...... 
119  | 3 
120  | 8 
121  | 12 

私は必要なもの: 私は記事の上位5%のパーセントを探しています、特に最悪のは、そのセットの1つを販売する私が持っているもの

。私の分析を続けるために、私は次の既存の列にその記事からの売上金額が必要になります。記事の上位5%(9が上位5%の最悪である)9、12、14、14、17および19倍を販売すると仮定すると

、テーブルは次のように検討する必要があります:

Article | Sales | Benchmark 
1  | 5  | 9 
2  | 0  | 9 
3  | 2  | 9 
4  | 9  | 9 
........| ......| ...... 
118  | 3  | 9 
119  | 8  | 9 
120  | 12 | 9 

私はそれを達成する方法上の任意のアドバイスはありますか? ありがとう!

答えて

0

percentile_cont()またはpercentile_disc()を使用します。しかし、私はしばしばこのタイプの計算を手動で行います:

+0

驚くべきことに、魅力的です。ありがとう! – Berbatov

+0

はなぜ() '' PERCENTILE_DISCではなく手動でそれを行いますか?あなたはそれが正しく動作することがわかっていますか?それ以外の場合は、確実に読んで維持するために、より効率的かつ容易になるだろう。そして、それは、手動計算と一緒に解答に含まれるべきです。 – mathguy