7.23.11 MEDIAN
順序付けされた一連の値の中央値を求めます。線形補間された値となることがあります。
- メモ
-
MEDIANは,PERCENTILE_CONTの引数(パーセンタイルの指定)に中央値(0.5)を指定したときと同じ結果が得られる逆分布関数です。
MEDIANの被集約引数をARG1とした場合,MEDIANは次のPERCENTILE_CONTと等価になります。
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY ARG1 ASC)
- 〈この項の構成〉
(1) 指定形式
逆分布関数MEDIAN::=MEDIAN(値式)
(2) 指定形式の説明
- 値式:
-
中央値を求める際の入力値を値式の形式で指定します。値式については,「7.21 値式」を参照してください。
(3) 規則
-
ナル値は集計対象に含まれません。
-
入力行数が0の場合,実行結果はナル値になります。
-
値式に指定できるデータ型と逆分布関数MEDIANの実行結果のデータ型を次の表に示します。
表7‒28 値式に指定できるデータ型と逆分布関数MEDIANの実行結果のデータ型 項番
値式に指定できるデータ型
逆分布関数MEDIANの実行結果のデータ型
1
INTEGER
DOUBLE PRECISION
2
BIGINT
3
SMALLINT
4
DECIMAL(m,n)
5
NUMERIC(m,n)
6
DOUBLE PRECISION
7
FLOAT
-
MEDIANは,順序付けされた一連の値に対して線形補間することによって計算されます。入力行数をNとした場合,最初に行番号RN={1+0.5×(N−1)}が計算されます。続いて,行番号CRN=CEIL(RN)およびFRN=FLOOR(RN)の行の値間の線形補間によって,MEDIANの実行結果が算出されます。計算結果は次のようになります。
-
CRN=FRN=RNの場合:行RNの値
-
それ以外の場合:(CRN−RN)×(行FRNの値)+(RN−FRN)×(行CRNの値)
-
(4) 例題
- 例題1
-
給与表(SALARYLIST)から,社員の給料(SALARY)の中央値(50パーセンタイル)を職級(POSITION)別に求めます。
SELECT "POSITION",MEDIAN("SALARY") AS "MEDIAN" FROM "SALARYLIST" GROUP BY "POSITION" ORDER BY "POSITION"
実行結果の例
- 例題2
-
給与表(SALARYLIST)から,社員の給料(SALARY)の中央値(50パーセンタイル)を求めます。
SELECT MEDIAN("SALARY") AS "MEDIAN" FROM "SALARYLIST"