構文
用途
PERCENTILE_DISC
は、不連続分散モデルを想定する逆分散関数です。このファンクションでは、パーセンタイル値およびソート指定を指定し、そのセットから要素を戻します。計算では、NULLは無視されます。
このファンクションは、引数として、任意の数値データ型、または暗黙的に数値データ型に変換可能な数値以外のデータ型を取ります。また、引数の数値データ型と同じデータ型を戻します。
最初のexpr
は、パーセンタイル値であるため、0から1の数値で評価します。この式は、各集計グループ内の定数である必要があります。ORDER
BY
句には、ソート可能な型の単一式を指定します。
指定されたパーセンタイル値P
に対して、PERCENTILE_DISC
は、ORDER
BY
句の式の値をソートし、P
以上である(同じソート指定に従う)最小CUME_DIST
値を持つ値を戻します。
集計の例
「PERCENTILE_CONT」の集計の例を参照してください。
分析の例
次の例では、サンプル表hr.employees
の各従業員の給与の中央値不連続パーセンタイルを計算します。
SELECT last_name, salary, department_id, PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY salary DESC) OVER (PARTITION BY department_id) "Percentile_Disc", CUME_DIST() OVER (PARTITION BY department_id ORDER BY salary DESC) "Cume_Dist" FROM employees WHERE department_id in (30, 60) ORDER BY last_name, salary, department_id; LAST_NAME SALARY DEPARTMENT_ID Percentile_Disc Cume_Dist ------------------------- ---------- ------------- --------------- ---------- Austin 4800 60 4800 .8 Baida 2900 30 2900 .5 Colmenares 2500 30 2900 1 Ernst 6000 60 4800 .4 Himuro 2600 30 2900 .833333333 Hunold 9000 60 4800 .2 Khoo 3100 30 2900 .333333333 Lorentz 4200 60 4800 1 Pataballa 4800 60 4800 .8 Raphaely 11000 30 2900 .166666667 Tobias 2800 30 2900 .666666667
部門30の中央値の値は2900です。この値の対応するパーセンタイル(Cume_Dist
)は、0.5以上の最小値です。部門60の中央値の値は4800です。この値の対応するパーセンタイルは、0.5以上の最小値です。