全部產品
Search
文件中心

MaxCompute:PERCENTILE_DISC

更新時間:Nov 27, 2025

PERCENTILE_DISC函數用於計算給定的百分位元值,先對指定列升序排列,返回累計分布大於或等於給定百分位元的第一個值。

命令格式

-- 計算給定的百分位元值
PERCENTILE_DISC(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>])

-- 計算視窗中的百分位元值
PERCENTILE_DISC(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>]) OVER ([partition_clause] [orderby_clause])

參數說明

  • col_name:必填。任意可排序值列。

  • percentile:必填。需要計算的百分位元。DOUBLE類型常量,取值在[0,1]範圍內。

  • isIgnoreNull:可選。是否忽略NULL值。BOOLEAN類型常量,預設為TRUE。若取值為FALSE,排序時NULL值會作為最小值。

  • partition_clauseorderby_clause:詳情請參見視窗函數

傳回值說明

返回計算的百分位元值,類型與輸入col_name列的資料類型一致。

使用樣本

  • 樣本1:忽略NULL值,計算視窗中的百分位元值。

    SELECT
      x,
      PERCENTILE_DISC(x, 0) OVER() AS min,
      PERCENTILE_DISC(x, 0.5) OVER() AS median,
      PERCENTILE_DISC(x, 1) OVER() AS max
    FROM VALUES('c'),(NULL),('b'),('a') AS tbl(x);
    
    -- 返回結果。
    +------------+------------+------------+------------+
    | x          | min        | median     | max        | 
    +------------+------------+------------+------------+
    | c          | a          | b          | c          | 
    | NULL       | a          | b          | c          | 
    | b          | a          | b          | c          | 
    | a          | a          | b          | c          | 
    +------------+------------+------------+------------+
  • 樣本2:不忽略NULL值則排序時NULL值作為最小值,計算視窗中的百分位元值。

    SELECT
      x,
      PERCENTILE_DISC(x, 0, false) OVER() AS min,
      PERCENTILE_DISC(x, 0.5, false) OVER() AS median,
      PERCENTILE_DISC(x, 1, false) OVER() AS max
    FROM VALUES('c'),(NULL),('b'),('a') AS tbl(x);
    
    -- 返回結果。
    +------------+------------+------------+------------+
    | x          | min        | median     | max        | 
    +------------+------------+------------+------------+
    | c          | NULL       | a          | c          | 
    | NULL       | NULL       | a          | c          | 
    | b          | NULL       | a          | c          | 
    | a          | NULL       | a          | c          | 
    +------------+------------+------------+------------+

相關函數

PERCENTILE_DISC函數屬於彙總函式或視窗函數。

  • 更多將多條輸入記錄進行求平均值、參數彙總的相關函數請參見彙總函式

  • 更多對指定開窗列的資料進行求和、數值排序的相關函數請參見視窗函數