NTILE

sintaxă

 descrierea ntile.gif urmează

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 NTILEsau 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



+