PERCENT_RANK 集約関数

PERCENT_RANK 関数は、ある行を行の集合に挿入すると仮定して、その行の相対的なパーセンタイル・ランクを戻します。

構文図を読む構文図をスキップする PERCENT_RANK ( ,expression ) WITHIN GROUP ( order-by-clause )
order-by-clause
構文図を読む構文図をスキップする ORDER BY ,sort-keyasc-optiondesc-option
asc-option
構文図を読む構文図をスキップする ASC NULLS LASTNULLS FIRST
desc-option
構文図を読む構文図をスキップする DESC NULLS FIRSTNULLS LAST

スキーマは SYSIBM です。

expression
行の集合に仮定的に挿入する行を指定する式。式は組み込みデータ・タイプの値を戻す必要があります。この式は、定数、変数、または定数か変数のキャストでなければなりません (SQLSTATE 428I9)。
order-by-clause
ORDER BY
集合内の処理対象の、同じグループ化集合に属する行の順序を指定します。
sort-key
ソート・キーは、列名または sort-key-expression のどちらでも構いません。 ソート・キーとして定数を指定しても、それは出力列の位置を指すわけではありません。定数を指定すると、通常の ORDER BY 節の定数とは異なり、ソート・キーがないことを意味します。
ASC
sort-key の値を昇順で使用します。
DESC
sort-key の値を降順で使用します。
NULLS FIRST
配列において、ソート順序は、すべての非 NULL 値の前に NULL 値が置かれます。
NULLS LAST
配列において、ソート順序は、すべての非 NULL 値の後に NULL 値が置かれます。

式の数は、sort-key 式の数と同じでなければなりません (SQLSTATE 42822)。各式のデータ・タイプと各式に対応する sort-key 式のデータ・タイプの間には互換性がなければなりません (SQLSTATE 42822)。

結果のデータ・タイプは DECFLOAT(34) です。実際の結果は、0.0 より大きく、1.0 以下でなければなりません。

'A00' 部門の従業員の給与において、新しい従業員の仮の給与 47000 の相対的なパーセンタイル・ランクをホスト変数 PR に設定します。
   SELECT PERCENT_RANK(47000) WITHIN GROUP (ORDER BY SALARY) 
      INTO :PR FROM EMPLOYEE WHERE WORKDEPT = 'A00'
PR には値 0.4 が設定されます。
以下の結果セットが参照用に表示されます。
   SELECT SALARY FROM EMPLOYEE WHERE WORKDEPT = 'A00' ORDER BY SALARY

SALARY     
-----------
   39250.00
   46500.00
   49250.00
   66500.00
  152750.00

  5 record(s) selected.