Fonction d’agrégation approx_percentile

S’applique à :case marquée oui Databricks SQL case marquée oui Databricks Runtime

Retourne le centile approximatif de expr au sein du groupe.

Syntaxe

approx_percentile ( [ALL | DISTINCT] expr, percentile [, accuracy] ) [ FILTER ( WHERE cond ) ]

Cette fonction peut également être appelée en tant que fonction de fenêtre à l’aide de la clause OVER.

Arguments

  • expr : expression numérique.
  • percentile : littéral numérique compris entre 0 et 1 ou un tableau littéral de valeurs numériques, chacune comprise entre 0 et 1.
  • accuracy : littéral INTEGER supérieur à 0. Si l’exactitude est omise, elle est définie sur 10000.
  • cond : expression booléenne facultative qui filtre les lignes utilisées pour l’agrégation.

Retours

La fonction d’agrégation retourne l’expression qui est la plus petite valeur du groupe ordonné (triée de la moins à la plus grande) de telle sorte que moins de percentile sur expr valeurs ne soit inférieure à la valeur ou égale à cette valeur.

Si percentile est un tableau, approx_percentile retourne le tableau de centile approximatif de expr à percentile. Le paramètre accuracy contrôle l’exactitude de l’approximation au détriment de la mémoire. Une plus grande valeur d’exactitude donne une meilleure exactitude, 1.0/accuracy est l’erreur relative de l’approximation. Cette fonction est un synonyme de la fonction d’agrégation percentile_approx.

Si DISTINCT est spécifié, la fonction ne s’applique qu’à un ensemble unique de valeurs expr.

Exemples

> SELECT approx_percentile(col, array(0.5, 0.4, 0.1), 100) FROM VALUES (0), (1), (2), (10) AS tab(col);
 [1,1,0]

> SELECT approx_percentile(col, 0.5, 100) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
 6

> SELECT approx_percentile(DISTINCT col, 0.5, 100) FROM VALUES (0), (6), (6), (7), (9), (10) AS tab(col);
 7