7.23.13 PERCENTILE_DISC
順序付けされた一連の値のパーセンタイル(百分位数)を求めます。一連の値の中から結果を返します。
- 〈この項の構成〉
(1) 指定形式
逆分布関数PERCENTILE_DISC::=PERCENTILE_DISC(値指定) WITHINグループ指定 WITHINグループ指定::=WITHIN GROUP(ORDER BY ソート指定リスト)
(2) 指定形式の説明
- 値指定:
-
求めるパーセンタイルの値を値指定の形式で指定します。値指定については,「7.22 値指定」を参照してください。
指定規則を次に示します。
-
0〜1の値(INTEGER型,BIGINT型,SMALLINT型,DECIMAL型,またはNUMERIC型のデータ)を指定してください。
-
ナル値を指定した場合,実行結果はナル値になります。
-
?パラメタを単独で指定した場合,?パラメタに仮定されるデータ型はDECIMAL(3,2)になります。
-
- WITHINグループ指定:
-
WITHINグループ指定::=WITHIN GROUP(ORDER BY ソート指定リスト)
WITHINグループ指定には,パーセンタイルを求めるデータとデータの並び順を指定します。ソート指定リストのソートキーにパーセンタイルを求めるデータを指定し,順序付け指定にデータの並び順(昇順,降順)を指定します。ソート指定リストについては,「7.25 ソート指定リスト」を参照してください。
指定規則を次に示します。
-
WITHINグループ指定のソート指定リストには,ナル値ソート順指定は指定できません。
-
WITHINグループ指定のソート指定リストには,ソート指定を2つ以上指定できません。
-
(3) 規則
-
ナル値は集計対象に含まれません。
-
入力行数が0の場合,実行結果はナル値になります。
-
ソート指定リストのソートキーに指定できるデータ型と逆分布関数PERCENTILE_DISCの実行結果のデータ型を次の表に示します。
表7‒30 ソート指定リストのソートキーに指定できるデータ型と逆分布関数PERCENTILE_DISCの実行結果のデータ型 項番
ソート指定リストのソートキーに指定できるデータ型
逆分布関数PERCENTILE_DISCの実行結果のデータ型
1
INTEGER
INTEGER
2
BIGINT
3
SMALLINT
SMALLINT
4
DECIMAL(m,n)
DECIMAL(m,n)
5
NUMERIC(m,n)
6
DOUBLE PRECISION
DOUBLE PRECISION
7
FLOAT
8
CHAR(n)
CHAR(n)
9
VARCHAR(n)
VARCHAR(n)
10
DATE
DATE
11
TIME(p)
TIME(p)
12
TIMESTAMP(p)
TIMESTAMP(p)
-
PERCENTILE_DISCは,順序付けされた一連の値の中から結果を返します。引数に値Pを指定した場合,ソート指定リストで指定された値式の値を並べ替えて,その値の中から同じソート指定リストに従うCUME_DISTの値がP以上となる最小の値を返します。
(4) 例題
- 例題
-
給与表(SALARYLIST)から,社員の給料(SALARY)の中央値(50パーセンタイル)を職級(POSITION)別に求めます。
PERCENTILE_CONTとPERCENTILE_DISCを使用して,それぞれの中央値を求めます。
SELECT "POSITION", PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY "SALARY" ASC) AS "PERCENTILE_CONT", PERCENTILE_DISC(0.5) WITHIN GROUP(ORDER BY "SALARY" ASC) AS "PERCENTILE_DISC" FROM "SALARYLIST" GROUP BY "POSITION" ORDER BY "POSITION"
上記のように,PERCENTILE_CONTとPERCENTILE_DISCの結果が異なることがあります。これは,PERCENTILE_CONTは,線形補間された結果を返していますが,PERCENTILE_DISCは,集計対象の一連の値だけを使用して結果を返しているためです。