Syntax
beskrivning av illustrationen ntile.gif
Se även:
”analytiska funktioner” för information om syntax, semantik och begränsningar, inklusive giltiga former av expr
syfte
NTILE
är en analytisk funktion. Den delar upp en ordnad datamängd i ett antal hinkar som anges med expr
och tilldelar lämpligt hinknummer till varje rad. Skoporna är numrerade 1 till expr
. Värdet expr
måste lösa till en positiv konstant för varje partition. Oracle Database förväntar sig ett heltal, och om expr
är en icke-integrerad konstant, förkortar Oracle värdet till ett heltal. Returvärdet är NUMBER
.
antalet rader i skoporna kan variera med högst 1. De återstående värdena (resten av antalet rader dividerat med hinkar) fördelas en för varje hink, börjar med hink 1.
om expr
är större än antalet rader, fylls ett antal hinkar lika med antalet rader och de återstående hinkarna är tomma.
du kan inte använda NTILE
eller någon annan analytisk funktion för expr
. Det betyder att du inte kan bo analytiska funktioner, men du kan använda andra inbyggda funktionsuttryck för expr
.
Se även:
”om SQL-uttryck” för information om giltiga former av expr
och tabell 2-10, ”Implicit type Conversion Matrix” för mer information om implicit konvertering
exempel
följande exempel delar upp i 4 hinkar värdena i kolumnen salary
i tabellen oe.employees
från avdelning 100. Kolumnen salary
har 6 värden i den här avdelningen, så de två extra värdena (resten av 6 / 4) tilldelas skopor 1 och 2, som därför har ett värde till än skopor 3 eller 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