Fonction d’agrégation approx_percentile
S’applique à : Databricks SQL 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
: UnINTEGER
littéral 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