NTILE

syntaxis

 beschrijving van ntile.gif volgt

beschrijving van de afbeelding ntile.gif

zie ook:

“analytische functies” voor informatie over syntaxis, semantiek en beperkingen, inclusief geldige vormen van expr

doel

NTILE is een analytische functie. Het verdeelt een geordende gegevensset in een aantal emmers aangegeven met expr en kent het juiste emmernummer toe aan elke rij. De emmers zijn genummerd van 1 tot en met expr. De waarde expr moet voor elke partitie worden omgezet in een positieve constante. Oracle Database verwacht een geheel getal, en als expr een nonintegerconstante is, dan snijdt Oracle de waarde af tot een geheel getal. De retourwaarde is NUMBER.

het aantal rijen in de emmers kan maximaal 1 verschillen. De restwaarden (de rest van het aantal rijen gedeeld door emmers) worden verdeeld één voor elke emmer, te beginnen met emmer 1.

als expr groter is dan het aantal rijen, wordt een aantal emmers dat gelijk is aan het aantal rijen gevuld en zijn de resterende emmers leeg.

u kunt NTILE of een andere analytische functie voor exprniet gebruiken. Dat wil zeggen, U kunt geen analytische functies nestelen, maar u kunt andere ingebouwde functie-expressies gebruiken voor expr.

zie ook:

“over SQL Expressions” voor informatie over geldige vormen van expr en tabel 2-10, “impliciete Type Conversion Matrix” voor meer informatie over impliciete conversie

voorbeelden

het volgende voorbeeld verdeelt in 4 emmers de waarden in de salary kolom van de oe.employees tabel uit afdeling 100. De kolom salary heeft 6 waarden in deze afdeling, dus de twee extra waarden (de rest van 6/4) worden toegewezen aan emmers 1 en 2, die dus één waarde meer hebben dan emmers 3 of 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



+