Sintassi aggregata
rank_aggregate::=
Descrizione dell’illustrazione rank_aggregate.gif
Sintassi analitica
rank_analytic::=
Descrizione dell’illustrazione rank_analytic.gif
Vedi anche:
“Funzioni analitiche” per informazioni su sintassi, semantica e restrizioni
Scopo
RANK
calcola il rango di un valore in un gruppo di valori. Il tipo restituito èNUMBER
.,
Vedi anche:
Tabella 2-10, “Matrice di conversione di tipo implicito” per ulteriori informazioni sulla conversione implicita e “Precedenza numerica” per informazioni sulla precedenza numerica
Le righe con valori uguali per i criteri di classificazione ricevono lo stesso rango. Oracle Database aggiunge quindi il numero di righe legate al rango legato per calcolare il rango successivo. Pertanto, i ranghi potrebbero non essere numeri consecutivi. Questa funzione è utile per top – N e bottom-N reporting.,
-
Come funzione aggregata,
RANK
calcola il rango di una riga ipotetica identificata dagli argomenti della funzione rispetto a una determinata specifica di ordinamento. Gli argomenti della funzione devono essere valutati in espressioni costanti all’interno di ciascun gruppo aggregato, poiché identificano una singola riga all’interno di ciascun gruppo. Le espressioni degli argomenti costanti e le espressioni nella clausolaORDER
BY
della corrispondenza aggregata per posizione., Pertanto, il numero di argomenti deve essere lo stesso e i loro tipi devono essere compatibili. -
Come funzione analitica,
RANK
calcola il rango di ogni riga restituita da una query rispetto alle altre righe restituite dalla query, in base ai valori divalue_exprs
nelorder_by_clause
.,
Aggregazione di Esempio
L’esempio seguente calcola il rango di un dipendente nella tabella di esempio hr.employees
con uno stipendio di $15,500 e una commissione del 5%:
SELECT RANK(15500, .05) WITHIN GROUP (ORDER BY salary, commission_pct) "Rank" FROM employees; Rank---------- 105
allo stesso modo, la query seguente restituisce il rango di un $15,500 stipendio tra gli stipendi del dipendente:
SELECT RANK(15500) WITHIN GROUP (ORDER BY salary DESC) "Rank of 15500" FROM employees;Rank of 15500-------------- 4
Analitica Esempio
La seguente dichiarazione classifica i dipendenti nel campione hr
schema nel reparto di 80 basato sul loro stipendio e della commissione., Valori salariali identici ricevono lo stesso rango e causano ranghi non consecutivi. Confronta questo esempio con l’esempio per DENSE_RANK.