計算一組值的中位數

自 Oracle 10g 以來的 MEDIAN 功能是一個易於使用的聚合功能:

SELECT MEDIAN(SAL)
FROM EMP

它返回值的中值

也適用於 DATETIME 值。

MEDIAN 的結果是通過首先排序行來計算的。使用 N 作為組中的行數,Oracle 使用公式 RN =(1 +(0.5 *(N-1))計算感興趣的行數(RN)。聚合函式的最終結果通過線性計算行號 CRN = CEILING(RN) 和 FRN = FLOOR(RN) 的行之間的插值。

從 Oracle 9i 開始,你可以使用 PERCENTILE_CONT ,其工作方式與 MEDIAN 函式相同,百分位數值預設為 0.5

SELECT PERCENTILE_CONT(.5) WITHIN GROUP(order by SAL) 
FROM EMP