Hitachi

Hitachi Advanced Data Binder SQLリファレンス


7.22.12 PERCENTILE_CONT

順序付けされた一連の値のパーセンタイル(百分位数)を求めます。線形補間された値となることがあります。

〈この項の構成〉

(1) 指定形式

逆分布関数PERCENTILE_CONT::=PERCENTILE_CONT(値指定) WITHINグループ指定
 
  WITHINグループ指定::=WITHIN GROUP(ORDER BY ソート指定リスト)

(2) 指定形式の説明

値指定

求めるパーセンタイルの値を値指定の形式で指定します。値指定については,「7.21 値指定」を参照してください。

指定規則を次に示します。

  • 0〜1の値(INTEGER型,SMALLINT型,DECIMAL,またはNUMERICのデータ)を指定してください。

  • ナル値を指定した場合,実行結果はナル値になります。

  • ?パラメタを単独で指定した場合,?パラメタに仮定されるデータ型はDECIMAL(3,2)になります。

WITHINグループ指定
WITHINグループ指定::=WITHIN GROUP(ORDER BY ソート指定リスト)

WITHINグループ指定には,パーセンタイルを求めるデータとデータの並び順を指定します。ソート指定リストのソートキーにパーセンタイルを求めるデータを指定し,順序付け指定にデータの並び順(昇順,降順)を指定します。ソート指定リストについては,「7.24 ソート指定リスト」を参照してください。

指定規則を次に示します。

  • WITHINグループ指定のソート指定リストには,ナル値ソート順指定は指定できません。

  • WITHINグループ指定のソート指定リストには,ソート指定を2つ以上指定できません。

(3) 規則

  1. ナル値は集計対象に含まれません。

  2. 入力行数が0の場合,実行結果はナル値になります。

  3. ソート指定リストのソートキーに指定できるデータ型と逆分布関数PERCENTILE_CONTの実行結果のデータ型を次の表に示します。

    表7‒26 ソート指定リストのソートキーに指定できるデータ型と逆分布関数PERCENTILE_CONTの実行結果のデータ型

    項番

    ソート指定リストのソートキーに指定できるデータ型

    逆分布関数PERCENTILE_CONTの実行結果のデータ型

    1

    INTEGER

    DOUBLE PRECISION

    2

    SMALLINT

    3

    DECIMAL(m,n)

    4

    NUMERIC(m,n)

    5

    DOUBLE PRECISION

    6

    FLOAT

  4. PERCENTILE_CONTは,順序付けされた一連の値に対して線形補間することによって計算されます。入力行数をN,指定した引数の値をPとした場合,最初に行番号RN={1+P×(N−1)}が計算されます。続いて,行番号CRN=CEIL(RN)およびFRN=FLOOR(RN)の行の値間の線形補間によって,PERCENTILE_CONTの実行結果が算出されます。計算結果は次のようになります。

    • CRNFRNRNの場合:行RNの値

    • それ以外の場合:(CRNRN)×(行FRNの値)+(RNFRN)×(行CRNの値)

(4) 例題

例題1

給与表(SALARYLIST)から,社員の給料(SALARY)の中央値(50パーセンタイル)を職級(POSITION)別に求めます。

SELECT "POSITION",
        PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY "SALARY") AS "PERCENTILE_CONT"
    FROM "SALARYLIST"
    GROUP BY "POSITION"
    ORDER BY "POSITION"

[図データ]

例題2

給与表(SALARYLIST)から,社員の給料(SALARY)の中央値(50パーセンタイル)を求めます。

SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY "SALARY") AS "PERCENTILE_CONT"
    FROM "SALARYLIST"

[図データ]