Fonction d’agrégation percentile_approx
S’applique à : Databricks SQL Databricks Runtime
Retourne le centile approximatif de expr
au sein du groupe. Cette fonction est un synonyme de la fonction d’agrégation approx_percentile.
percentile_approx ( [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
.
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 sur10000
.cond
: expression booléenne facultative qui filtre les lignes utilisées pour l’agrégation.
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 percentile_approx de tableau, retourne le tableau de centile approximatif de expr
au centile spécifié.
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.
Si DISTINCT
est spécifié, la fonction ne s’applique qu’à un ensemble unique de valeurs expr
.
> SELECT percentile_approx(col, array(0.5, 0.4, 0.1), 100)
FROM VALUES (0), (1), (2), (10) AS tab(col);
[1,1,0]
> SELECT percentile_approx(col, 0.5, 100)
FROM VALUES (0), (6), (7), (9), (10), (10), (10) AS tab(col);
9
> SELECT percentile_approx(DISTINCT col, 0.5, 100)
FROM VALUES (0), (6), (7), (9), (10), (10), (10) AS tab(col);
7