MEDIAN¶
値のセットの中央値を決定します。
構文¶
集計関数
MEDIAN( <expr> )
ウィンドウ関数
MEDIAN( <expr> ) OVER ( [ PARTITION BY <expr2> ] )
引数¶
expr
式は数値データ型(
INTEGER
、FLOAT
、DECIMAL
、または同等)に評価される必要があります。
戻り値¶
入力に応じて、 FLOAT
または DECIMAL
(固定小数点)番号を返します。
使用上の注意¶
非NULL 値の数が1以上の奇数の場合、これは非NULL値の中央値(「中央」)を返します。
非NULL 値の数が偶数の場合、2つの中央値の平均に等しい値が返されます。たとえば、値が1、3、5、および20の場合、これは4(3と5の平均)を返します。
すべての値が NULLの場合、これは NULLを返します。
非NULL 値の値の数が0の場合、これは NULLを返します。
DISTINCT はこの関数ではサポートされていません。
ウィンドウ関数として使用する場合:
この関数は次をサポートしていません。
OVER()句のORDER BY サブ句。
ウィンドウフレーム。
例¶
これは、関数の使用方法を示しています。
空のテーブルを作成します。
CREATE OR REPLACE TABLE aggr(k int, v decimal(10,2));列vの
MEDIAN
値を取得します。行がないため、関数は NULL を返します。SELECT MEDIAN (v) FROM aggr; +------------+ | MEDIAN (V) | |------------| | NULL | +------------+いくつかの行を挿入します。
INSERT INTO aggr VALUES(1, 10), (1,20), (1, 21); INSERT INTO aggr VALUES(2, 10), (2, 20), (2, 25), (2, 30); INSERT INTO aggr VALUES(3, NULL);各グループの
MEDIAN
値を取得します。グループk = 2の値の数は偶数であるため、そのグループの戻り値は2つの中間の数値の中間点になります。SELECT k, MEDIAN(v) FROM aggr GROUP BY k ORDER BY k; +---+-----------+ | K | MEDIAN(V) | |---+-----------| | 1 | 20.00000 | | 2 | 22.50000 | | 3 | NULL | +---+-----------+