TO_APPROX_PERCENTILE |
Approximatif percentile |
|---|---|
| Oracle Database SQL | Oracle 12c Release 2 (version 12.2) ou supérieure |
Syntaxe
| TO_APPROX_PERCENTILE(detail, expr, 'datatype' [, { 'DESC' | 'ASC' | 'ERROR_RATE' | 'CONFIDENCE' } ]) |
Paramètres
| Nom | Description |
|---|---|
| detail | Ce paramètre permet de spécifier l'expression ou la colonne contenant les données d'entrée détaillées, qui serviront de base au calcul approximatif du percentile. Il peut s'agir de données brutes ou d'un jeu de valeurs filtrées ou transformées par une autre expression. |
| expr | Ce paramètre permet de définir la valeur numérique représentant le percentile à calculer (par exemple 0.5 pour la médiane, 0.9 pour le 90e percentile). La précision du résultat dépendra de la méthode approximative utilisée par Oracle. |
| 'datatype' | Ce paramètre permet d'indiquer le type de données attendu pour la valeur calculée, tel que 'NUMBER', 'BINARY_FLOAT' ou 'BINARY_DOUBLE'. Il guide la fonction dans le format de sortie et peut influencer la précision numérique. |
| 'DESC' | Ce paramètre permet de demander que le calcul du percentile soit effectué en considérant un tri décroissant des données, ce qui modifie l'interprétation de la position du percentile. |
| 'ASC' | Ce paramètre permet de demander que le calcul du percentile soit effectué en considérant un tri croissant des données, ce qui est le mode par défaut si ni 'DESC' ni 'ASC' n'est précisé. |
| 'ERROR_RATE' | Ce paramètre permet de spécifier le taux d'erreur toléré pour l'approximation du percentile. Une valeur plus faible augmente la précision mais peut accroître l'utilisation mémoire et le temps de calcul. |
| 'CONFIDENCE' | Ce paramètre permet de définir le niveau de confiance statistique appliqué au calcul approximatif, généralement exprimé comme une probabilité (par exemple 0.95 pour 95 % de confiance). |
Description
Cette fonction permet de convertir une expression ou colonne en un objet utilisé pour le calcul approximatif d'un percentile dans un ensemble de données.
Remarques
- La fonction TO_APPROX_PERCENTILE est introduite dans Oracle 12c Release 2 (12.2) pour fournir un calcul de percentile approximatif optimisé pour les grands ensembles de données, ce qui réduit le temps de traitement par rapport aux méthodes exactes. Elle est particulièrement adaptée aux analyses de type Big Data.
- L'utilisation du paramètre detail permet de pointer directement vers la colonne contenant les valeurs brutes ou filtrées. Cela signifie que la fonction peut s'appliquer aussi bien à des données issues d'un calcul intermédiaire qu'à des colonnes stockées, offrant une grande souplesse dans son usage.
- Le paramètre expr détermine le percentile recherché, exprimé sous forme de nombre entre 0 et 1. Par exemple, 0.5 correspond à la médiane, 0.25 au premier quartile, et 0.9 au 90e percentile. Cette flexibilité permet de réaliser des analyses statistiques ciblées avec une seule fonction.
- Le paramètre 'datatype' joue un rôle important dans la précision et le format de sortie. Par exemple, un calcul en BINARY_DOUBLE peut offrir une meilleure précision numérique mais consommera potentiellement plus de mémoire que NUMBER.
- Les paramètres 'ASC' et 'DESC' influencent la manière dont Oracle trie les données avant le calcul du percentile. Par défaut, 'ASC' est appliqué, mais un tri décroissant ('DESC') peut être nécessaire pour certains indicateurs métiers où la position par rapport aux valeurs les plus élevées est prioritaire.
- Le paramètre 'ERROR_RATE' est crucial dans les environnements de production à forte volumétrie. En réduisant cette valeur, on obtient un résultat plus précis, mais au prix d'une utilisation accrue de ressources CPU et mémoire. Inversement, l'augmenter permet des calculs plus rapides mais moins exacts.
- Le paramètre 'CONFIDENCE' permet de définir un niveau de confiance statistique sur l'estimation produite. Cela est particulièrement utile lorsque la fonction est utilisée dans un contexte décisionnel où la robustesse des résultats doit être quantifiée.
- Cette fonction ne retourne pas directement le percentile, mais un objet que l'on peut ensuite exploiter dans une requête analytique, par exemple en l'utilisant avec SELECT pour afficher la valeur calculée.
- Dans un contexte d'agrégation, TO_APPROX_PERCENTILE peut être combinée avec des clauses comme GROUP BY pour obtenir des percentiles approximatifs par catégorie, ce qui est particulièrement utile dans des rapports de segmentation.
- Comme il s'agit d'un calcul approximatif, cette fonction n'est pas toujours appropriée pour les analyses nécessitant une précision absolue, comme certaines études scientifiques ou juridiques. Dans ces cas, une méthode exacte comme PERCENTILE_CONT ou PERCENTILE_DISC est préférable.
- L'implémentation interne de cette fonction s'appuie sur des algorithmes de calcul approximatif de type streaming, ce qui la rend performante même sur des tables contenant des milliards de lignes, car elle ne nécessite pas de charger toutes les données en mémoire.
- L'utilisation combinée de 'ERROR_RATE' et 'CONFIDENCE' permet d'ajuster un équilibre entre vitesse et fiabilité, offrant un contrôle fin aux analystes voulant optimiser leurs requêtes en fonction des contraintes métier et techniques.
Dernière mise à jour : Dimanche, le 29 Juin 2025