Todos os produtos
Search
Central de documentação

MaxCompute:PERCENTILE_CONT

Última atualização: Jun 26, 2026

A função PERCENTILE_CONT calcula um percentil preciso usando interpolação linear. Ela ordena os valores de uma coluna em ordem crescente e retorna um valor interpolado para o percentile especificado.

Sintaxe

-- As an aggregate function
PERCENTILE_CONT(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>])

-- As a window function
PERCENTILE_CONT(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>]) OVER ([partition_clause] [orderby_clause])

Parâmetros

  • col_name: Obrigatório. Coluna do tipo DOUBLE ou DECIMAL.

  • percentile: Obrigatório. Constante DOUBLE no intervalo [0, 1].

  • isIgnoreNull: Opcional. Constante BOOLEAN que define se valores NULL devem ser ignorados. O padrão é TRUE. Se definido como FALSE, os valores NULL são tratados como o valor mínimo.

  • partition_clause e orderby_clause: Consulte Funções de janela para obter detalhes.

Valor de retorno

Retorna o percentil calculado como um valor DOUBLE.

Exemplos

  • Exemplo 1: Calcule percentis precisos dentro de uma janela, ignorando valores NULL.

    SELECT
      PERCENTILE_CONT(x, 0) OVER() AS min,
      PERCENTILE_CONT(x, 0.01) OVER() AS percentile1,
      PERCENTILE_CONT(x, 0.5) OVER() AS median,
      PERCENTILE_CONT(x, 0.9) OVER() AS percentile90,
      PERCENTILE_CONT(x, 1) OVER() AS max
    FROM VALUES(0D),(3D),(NULL),(1D),(2D) AS tbl(x) LIMIT 1;
    
    -- The following result is returned:
    +------------+-------------+------------+--------------+------------+
    | min        | percentile1 | median     | percentile90 | max        | 
    +------------+-------------+------------+--------------+------------+
    | 0.0        | 0.03        | 1.5        | 2.7          | 3.0        | 
    +------------+-------------+------------+--------------+------------+
  • Exemplo 2: Calcule percentis precisos dentro de uma janela, tratando valores NULL como o valor mínimo.

    SELECT
      PERCENTILE_CONT(x, 0, false) OVER() AS min,
      PERCENTILE_CONT(x, 0.01, false) OVER() AS percentile1,
      PERCENTILE_CONT(x, 0.5, false) OVER() AS median,
      PERCENTILE_CONT(x, 0.9, false) OVER() AS percentile90,
      PERCENTILE_CONT(x, 1, false) OVER() AS max
    FROM VALUES(0D),(3D),(NULL),(1D),(2D) AS tbl(x) LIMIT 1;
    
    -- The following result is returned:
    +------------+-------------+------------+--------------+------------+
    | min        | percentile1 | median     | percentile90 | max        | 
    +------------+-------------+------------+--------------+------------+
    | NULL       | 0.0         | 1.0        | 2.6          | 3.0        | 
    +------------+-------------+------------+--------------+------------+

Funções relacionadas

PERCENTILE_CONT pode atuar como função de agregação ou de janela.

  • Para outras funções que agregam dados em vários registros, consulte Funções de agregação.

  • Para funções que executam cálculos sobre uma janela de linhas, como somatórios e classificações, consulte Funções de janela.