NTILE

Syntaxe

 Description de ntile.gif suit

Description de l’illustration ntile.gif

Voir aussi :

« Fonctions analytiques » pour plus d’informations sur la syntaxe, la sémantique et les restrictions, y compris les formes valides de expr

But

NTILE est une fonction analytique. Il divise un ensemble de données ordonné en un certain nombre de compartiments indiqués par expr et attribue le numéro de compartiment approprié à chaque ligne. Les seaux sont numérotés de 1 à expr. La valeur expr doit se résoudre à une constante positive pour chaque partition. Oracle Database attend un entier, et si expr est une constante non integer, Oracle tronque la valeur en un entier. La valeur de retour est NUMBER.

Le nombre de lignes dans les compartiments peut différer d’au plus 1. Les valeurs restantes (le reste du nombre de lignes divisé par des compartiments) sont réparties une pour chaque compartiment, en commençant par le compartiment 1.

Si expr est supérieur au nombre de lignes, un nombre de compartiments égal au nombre de lignes sera rempli et les compartiments restants seront vides.

Vous ne pouvez pas utiliser NTILE ou toute autre fonction analytique pour expr. Autrement dit, vous ne pouvez pas imbriquer les fonctions analytiques, mais vous pouvez utiliser d’autres expressions de fonction intégrées pour expr.

Voir aussi :

« À propos des expressions SQL » pour des informations sur les formes valides de expr et de la Table 2-10, « Matrice de conversion de type implicite » pour plus d’informations sur la conversion implicite

Exemples

L’exemple suivant divise en 4 compartiments les valeurs de la colonne salary de la table oe.employees du département 100. La colonne salary a 6 valeurs dans ce département, de sorte que les deux valeurs supplémentaires (le reste de 6 / 4) sont allouées aux compartiments 1 et 2, qui ont donc une valeur de plus que les compartiments 3 ou 4.

SELECT last_name, salary, NTILE(4) OVER (ORDER BY salary DESC) AS quartile FROM employees WHERE department_id = 100;LAST_NAME SALARY QUARTILE------------------------- ---------- ----------Greenberg 12000 1Faviet 9000 1Chen 8200 2Urman 7800 2Sciarra 7700 3Popp 6900 4



+