sintaxă
descrierea ilustrației ntile.gif
Vezi și:
„Funcții analitice” pentru informații despre sintaxă, semantică și restricții, inclusiv forme valide de expr
scop
NTILE
este o funcție analitică. Acesta împarte un set de date ordonat într-un număr de găleți indicate de expr
și atribuie numărul de cupă corespunzător fiecărui rând. Gălețile sunt numerotate de la 1 la expr
. Valoarea expr
trebuie să se rezolve la o constantă pozitivă pentru fiecare partiție. Oracle Database așteaptă un număr întreg și dacă expr
este o constantă noninteger, atunci Oracle trunchiază valoarea la un număr întreg. Valoarea returnată este NUMBER
.
numărul de rânduri din găleți poate diferi cu cel mult 1. Valorile rămase (restul numărului de rânduri împărțite la găleți) sunt distribuite câte unul pentru fiecare găleată, începând cu găleata 1.
dacă expr
este mai mare decât numărul de rânduri, atunci un număr de găleți egal cu numărul de rânduri va fi umplut, iar gălețile rămase vor fi goale.
nu puteți utiliza NTILE
sau orice altă funcție analitică pentru expr
. Adică nu puteți cuibări funcții analitice, dar puteți utiliza alte expresii funcționale încorporate pentru expr
.
Vezi și:
„despre expresiile SQL” pentru informații despre formele valide aleexpr
și tabelul 2-10, „matrice de conversie de tip Implicit” pentru mai multe informații despre conversia implicită
Exemple
următorul exemplu împarte în 4 găleți valorile din coloana salary
a tabelului oe.employees
din Departamentul 100. Coloana salary
are 6 valori în acest departament, astfel încât cele două valori suplimentare (restul de 6 / 4) sunt alocate găleților 1 și 2, care, prin urmare, au o valoare mai mare decât gălețile 3 sau 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