In questo post, incontrerai la funzione di rango () nei database Oracle che consente di determinare il grado di riga da un determinato set di righe.
Funzione di rango Oracle
La funzione Rank () in Oracle ci consente di assegnare un grado a ciascuna riga in un set di risultati. La funzione assegna lo stesso grado a tutte le righe con valori simili e aggiunge un numero alla riga successiva nel rango.
Possiamo esprimere la sintassi per la funzione come mostrato nella seguente:
Rank () su (La funzione supporta i seguenti parametri:
ORACLE RANK () Esempi di funzioni
Per illustrare come utilizzare la funzione Rank () in Oracle, utilizzeremo la Tabella Employe Default Collection.
Considera la seguente tabella:
Seleziona First_name, last_name, stipendio, job_id da dipendenti EMP;Risultato:
Esempio 1: usando la funzione di rango per determinare il grado
Questo esempio dimostra l'uso della funzione di rango () nel determinare il grado di ciascun dipendente nella tabella.
Seleziona first_name, last_name, stipendio, job_id, rank () su (ordine per salario ASC) come rangoNella query fornita, utilizziamo la funzione di rango per assegnare una classifica a ciascuna riga nella tabella dei dipendenti in base ai valori nella colonna salariale.
La funzione utilizza la clausola "Ordine per" per specificare l'ordine in cui sono classificate le righe. Nel nostro esempio, utilizziamo l'ordine ascendente in base al valore della colonna salariale.
La funzione assegna quindi la riga con lo stipendio più basso un grado di 1 e il più alto grado di stipendio di N, dove N rappresenta il numero di righe nella tabella.
Come potresti notare, alle righe con valori salariali simili sono assegnati lo stesso rango.
Esempio 2: usando la funzione di rango con ordine per clausola
Supponiamo di voler raggruppare le righe in base a Job_id e quindi assegnare un grado alle righe in ogni partizione.
Possiamo eseguire una query come mostrato nel seguente:
Seleziona First_name, last_name, stipendio, job_id, rank () sopra (La clausola di partizione per clausola divide le righe dalla tabella del dipendente nei vari gruppi in base alla colonna Job_id.
La funzione di rango assegna quindi una classifica a ciascuna riga in ogni partizione con lo stipendio più basso in ogni partizione che riceve un grado di 1 e lo stipendio più alto in ogni partizione che riceve un grado di N (dove n è il numero di righe nella partizione).
Risultato:
Conclusione
In questo tutorial, hai imparato a usare la funzione di rango () di Oracle. Sebbene la funzione di rango () possa essere utile, può portare a un colpo di prestazione soprattutto quando si lavora con query complesse e set di dati di grandi dimensioni.