NTILE |
n tuiles |
| Oracle Database SQL |
Oracle 8i (version 8.1.6) ou supérieure |
Syntaxe
|
NTILE(expr) OVER ([ query_partition_clause ] order_by_clause)
|
Paramètres
| Nom |
Description |
| expr |
Ce paramètre permet d'indiquer le nombre de groupes (ou tuiles) dans lesquels les lignes doivent être réparties. Il doit s'agir d'un entier positif (exemple : 4 pour des quartiles). |
| OVER |
Ce paramètre permet de spécifier que la fonction est utilisée comme fonction analytique, appliquée sur un ensemble ordonné de lignes. |
| query_partition_clause |
Ce paramètre permet de diviser l'ensemble des données en partitions logiques, sur lesquelles la fonction s'applique indépendamment. Il est optionnel. |
| order_by_clause |
Ce paramètre permet de définir l'ordre des lignes à l'intérieur de chaque partition ou de l'ensemble, condition nécessaire pour la répartition dans les tuiles. |
Description
Cette fonction permet de répartir les lignes d'un ensemble de résultats en un nombre égal de groupes (ou tuiles), en attribuant un numéro de groupe à chaque ligne. Elle est utile pour créer des quartiles, déciles ou tout autre découpage statistique.
Remarques
- La fonction NTILE est une fonction analytique très utile pour la distribution statistique : Elle permet de diviser les lignes d'un ensemble de résultats
en n groupes égaux ou presque égaux. C'est particulièrement utile lorsqu'on veut établir des quartiles (4 groupes), des déciles (10 groupes) ou tout autre
partitionnement uniforme.
- Le paramètre expr est essentiel car il détermine le nombre de tuiles souhaitées : Il doit obligatoirement être un entier positif, car il représente
le nombre total de groupes dans lesquels les lignes doivent être réparties. Si expr vaut 4, la fonction tente de répartir les lignes en quatre groupes de taille
similaire.
- La clause ORDER BY est obligatoire dans NTILE pour fonctionner correctement : Sans ordre explicite, la fonction ne peut pas décider quelles lignes
appartiennent à quel groupe. Cet ordre définit le critère de classement qui déterminera la répartition des lignes dans les différentes tuiles.
- NTILE est souvent utilisée pour créer des groupes statistiques homogènes : Dans les analyses statistiques ou financières, cette fonction permet de classer
les individus ou objets selon un indicateur (revenu, score, performance), facilitant la segmentation ou l'analyse comparative.
- En présence d'un nombre de lignes non divisible par expr, les tuiles ne sont pas strictement égales : Lorsque la division n'est pas parfaite, Oracle
répartit les lignes en tuiles de taille différente, mais la différence entre deux tuiles ne dépasse jamais une ligne. Les premières tuiles ont une ligne de plus.
- La clause PARTITION BY permet d'appliquer NTILE à des sous-groupes de données : Cela signifie que les tuiles seront générées indépendamment pour chaque
partition, par exemple par département, catégorie, ou toute autre dimension logique.
- Chaque ligne du jeu de résultats reçoit un numéro de tuile entre 1 et expr : Ce numéro est attribué selon l'ordre spécifié, ce qui permet d'identifier
facilement à quel groupe chaque ligne appartient. Ce classement est souvent utilisé dans des représentations graphiques ou des analyses en cohortes.
- NTILE peut être combinée avec d'autres fonctions analytiques pour des analyses avancées : Par exemple, on peut l'utiliser avec AVG, RANK ou PERCENT_RANK
pour effectuer des comparaisons statistiques par groupe. Cela facilite l'exploration de disparités ou tendances dans les données.
- Les performances de NTILE peuvent être affectées par la taille des partitions et la complexité de l'ordre : Plus les données à trier sont volumineuses ou
complexes (exemple : tri sur plusieurs colonnes), plus l'opération peut être coûteuse en ressources, surtout si utilisée sans index approprié.
- NTILE est compatible avec les clauses WHERE, GROUP BY et HAVING via des sous-requêtes : Elle s'intègre parfaitement dans des requêtes complexes, en tant
que sous-requête analytique ou vue en ligne, pour effectuer des segmentations intermédiaires dans un pipeline SQL.
- La fonction NTILE ne modifie pas les données mais enrichit la vue analytique : Elle attribue une valeur numérique à chaque ligne, sans altérer les contenus
d'origine. Cela permet une segmentation non destructive, pratique dans des rapports ou tableaux de bord décisionnels.
- Depuis Oracle 8i (8.1.6), NTILE est disponible et conforme à la norme SQL:2003 : Son intégration précoce dans Oracle souligne son utilité fréquente dans
les besoins d'analyse statistique. Elle constitue un pilier dans les fonctions analytiques du langage SQL d'Oracle.
Dernière mise à jour : Dimanche, le 29 Juin 2025