PERCENT_RANK
集計の構文
percent_rank_aggregate::=
分析構文
percent_rank_analytic::=
関連項目:
構文、セマンティクスおよび制限事項の詳細は、「分析ファンクション」を参照してください。
目的
PERCENT_RANKは、CUME_DIST(累積分布)ファンクションと似ています。PERCENT_RANKが戻す値の範囲は、0から1(0および1を含む)です。すべての集合の最初の行のPERCENT_RANKは0(ゼロ)になります。戻り値はNUMBERです。
                  
関連項目:
暗黙的な変換の詳細は、表2-8を参照してください。
- 
                        
集計ファンクションとしての
PERCENT_RANKは、ファンクションの引数および対応するソート指定によって識別される不確定な行rを計算し、行rのランクから1を引いて、集計グループ内の行の数で割ります。不確定な行rをOracle Databaseが集計する行のグループに挿入するように計算します。このファンクションの引数は、各集計グループ内の1つの不確定行を識別します。このため、すべての引数は、集計グループ内で定数式と評価される必要があります。定数引数式および集計の
ORDERBY句の式の位置は、一致します。このため、引数の数は同じであり、その型は互換性がある必要があります。 - 
                        
分析ファンクションとしての
PERCENT_RANKは、行rに対して、rのランクから1を引いた数を、評価される行数(問合せ結果セット全体またはパーティション)より1少ない数で割ります。 
関連項目:
ORDER BY句の文字値を比較するためにPERCENT_RANKで使用する照合を定義する照合決定ルールは、『Oracle Databaseグローバリゼーション・サポート・ガイド』の付録Cを参照してください。
                     
集計の例
次の例では、サンプル表hr.employeesから、給与が$15,500であり、歩合が5%である不確定な従業員のパーセント・ランクを計算します。
                  
SELECT PERCENT_RANK(15000, .05) WITHIN GROUP
       (ORDER BY salary, commission_pct) "Percent-Rank" 
  FROM employees;
Percent-Rank
------------
  .971962617分析の例
次の例では、従業員ごとに、部門内での給与のパーセント・ランクを計算します。
SELECT department_id, last_name, salary, PERCENT_RANK() 
       OVER (PARTITION BY department_id ORDER BY salary DESC) AS pr
  FROM employees
  ORDER BY pr, salary, last_name;
DEPARTMENT_ID LAST_NAME                     SALARY         PR
------------- ------------------------- ---------- ----------
           10 Whalen                          4400          0
           40 Mavris                          6500          0
              Grant                           7000          0
. . .
           80 Vishney                        10500 .181818182
           80 Zlotkey                        10500 .181818182
           30 Khoo                            3100         .2
. . .
           50 Markle                          2200 .954545455
           50 Philtanker                      2200 .954545455
           50 Olson                           2100          1
. . .
