すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:PERCENTILE_DISC

最終更新日:Nov 28, 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:必須。計算対象のパーセンタイルです。値は [0, 1] の範囲にある DOUBLE 型の定数である必要があります。

  • 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 値を最小値として扱います。

    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 は集計関数またはウィンドウ関数です。

  • 平均値の計算など、複数の入力レコードに対して集約を実行する関数の詳細については、「集計関数」をご参照ください。

  • データの合計や値のソートなど、指定されたウィンドウ内のデータに対して操作を実行する関数の詳細については、「ウィンドウ関数」をご参照ください。