Agregate Sintaxa
rank_aggregate::=
Descrierea ilustrației rank_aggregate.gif
Analitice Sintaxa
rank_analytic::=
Descrierea ilustrației rank_analytic.gif
Vezi și:
„Funcții analitice”pentru informații despre sintaxă, semantică și restricții
scop
RANK
calculează rangul unei valori într-un grup de valori. Tipul de retur este NUMBER
.,
Vezi și:
tabelul 2-10, „matricea de conversie de tip Implicit” pentru mai multe informații despre conversia implicită și „precedența numerică” pentru informații despre precedența numerică
rândurile cu valori egale pentru criteriile de clasificare primesc același rang. Oracle Database adaugă apoi numărul de rânduri legate la rangul legat pentru a calcula următorul rang. Prin urmare, rândurile nu pot fi numere consecutive. Această funcție este utilă pentru raportarea top-N și bottom-N.,
-
ca o funcție agregată,
RANK
calculează rangul unui rând ipotetic identificat prin argumentele funcției cu privire la o specificație de sortare dată. Argumentele funcției trebuie să evalueze toate expresiile constante din fiecare grup agregat, deoarece identifică un singur rând în fiecare grup. Constanta argument expresii și expresii înORDER
BY
clauza de agregate meci de poziție., Prin urmare, numărul de argumente trebuie să fie același, iar tipurile acestora trebuie să fie compatibile. -
Ca o analitică a funcției,
RANK
calculeaza rangul de fiecare rand returnat de o interogare cu privire la alte rânduri returnate de interogare, bazat pe valorilevalue_exprs
înorder_by_clause
.,
Agregate Exemplu
exemplul următor calculează rangul unui ipotetic salariat cuprins în eșantion tabel hr.employees
cu un salariu de 15.500 de dolari și un comision de 5%:
SELECT RANK(15500, .05) WITHIN GROUP (ORDER BY salary, commission_pct) "Rank" FROM employees; Rank---------- 105
în mod Similar, următoarea interogare returnează rangul pentru o 15.500 de dolari salariu între salariile angajaților:
SELECT RANK(15500) WITHIN GROUP (ORDER BY salary DESC) "Rank of 15500" FROM employees;Rank of 15500-------------- 4
Analitice Exemplu
următoarea declarație rândurile salariaților din eșantion hr
schema din departamentul 80 bazează pe salariu și comision., Valorile salariale identice primesc același rang și provoacă ranguri neconsecutive. Comparați acest exemplu cu exemplul pentru DENSE_RANK.