Tous les produits
Search
Centre de documentation

MaxCompute:PERCENTILE_CONT

Dernière mise à jour :Aug 10, 2026

La fonction PERCENTILE_CONT calcule un percentile précis par interpolation linéaire. Elle trie les valeurs d'une colonne par ordre croissant et renvoie une valeur interpolée pour le percentile spécifié.

Syntaxe

-- 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])

Paramètres

  • col_name : Obligatoire. Colonne de type DOUBLE ou DECIMAL.

  • percentile : Obligatoire. Constante DOUBLE comprise dans l'intervalle [0, 1].

  • isIgnoreNull : Facultatif. Constante BOOLEAN indiquant s'il faut ignorer les valeurs NULL. La valeur par défaut est TRUE. Si vous la définissez sur FALSE, les valeurs NULL sont traitées comme la valeur minimale.

  • partition_clause et orderby_clause : Consultez la rubrique Window Functions pour plus de détails.

Valeur de retour

Renvoie le percentile calculé sous forme de valeur DOUBLE.

Exemples

  • Exemple 1 : Calculer des percentiles précis au sein d'une fenêtre, en ignorant les valeurs 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        | 
    +------------+-------------+------------+--------------+------------+
  • Exemple 2 : Calculer des percentiles précis au sein d'une fenêtre, en traitant les valeurs NULL comme la valeur minimale.

    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        | 
    +------------+-------------+------------+--------------+------------+

Fonctions connexes

Vous pouvez utiliser la fonction PERCENTILE_CONT comme fonction d'agrégation ou comme fonction de fenêtrage.

  • Pour découvrir d'autres fonctions qui agrègent des données sur plusieurs enregistrements, consultez la rubrique Aggregate Functions.

  • Pour en savoir plus sur les fonctions qui effectuent des calculs sur une fenêtre de lignes, telles que la sommation et le classement, reportez-vous à la section Window Functions.