計算一組值的中位數
自 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