In diesem Beitrag begegnen Sie die Funktion rank () in Oracle -Datenbanken, mit der Sie den Rang einer Zeile aus einem bestimmten Satz von Zeilen ermitteln können.
Oracle Rank -Funktion
Mit der Funktion rank () in Oracle können wir jeder Zeile in einem Ergebnissatz einen Rang zuweisen. Die Funktion weist allen Zeilen den gleichen Rang mit ähnlichen Werten zu und fügt der nächsten Zeile im Rang eine Zahl hinzu.
Wir können die Syntax für die Funktion ausdrücken, wie im Folgenden gezeigt:
Rank () über (Die Funktion unterstützt die folgenden Parameter:
Oracle Rank () Funktionsbeispiele
Um zu veranschaulichen, wie die Funktion rank () in Oracle verwendet wird, werden wir die Tabellenversammlung der Mitarbeiter verwenden.
Betrachten Sie die folgende Tabelle:
Wählen Sie First_Name, last_name, Gehalt, job_id aus Mitarbeitern EMP;Ergebnis:
Beispiel 1: Verwenden der Rangfunktion, um den Rang zu bestimmen
Dieses Beispiel zeigt die Verwendung der Funktion rank () bei der Bestimmung des Ranges jedes Mitarbeiters in der Tabelle.
Wählen Sie First_Name, last_name, Gehalt, Job_id, Rank () über (Reihenfolge nach Gehalt ASC) als Rang ausIn der angegebenen Abfrage verwenden wir die Rangfunktion, um jeder Zeile in der Tabelle der Mitarbeiter ein Ranking zuzuweisen, basierend auf den Werten in der Gehaltsspalte.
Die Funktion verwendet die Klausel "Order by", um die Reihenfolge anzugeben, in der die Zeilen eingestuft werden. In unserem Beispiel verwenden wir die aufsteigende Reihenfolge basierend auf dem Wert der Gehaltsspalte.
Die Funktion weist dann die Zeile mit dem niedrigsten Gehalt einen Rang von 1 und dem höchsten Gehaltsrang von n zu, wobei n die Anzahl der Zeilen in der Tabelle darstellt.
Wie Sie vielleicht bemerken, werden den Zeilen mit ähnlichen Gehaltswerten den gleichen Rang zugewiesen.
Beispiel 2: Verwenden der Rangfunktion mit Reihenfolge nach Klausel
Angenommen, wir möchten die Zeilen basierend auf dem Job_ID gruppieren und dann den Zeilen in jeder Partition einen Rang zuweisen.
Wir können eine Abfrage ausführen, wie im Folgenden gezeigt:
Wählen Sie First_Name, last_name, Gehalt, Job_id, Rank () Over (Die Partition nach Klausel unterteilt die Zeilen aus der Tabelle des Mitarbeiters in die verschiedenen Gruppen basierend auf der Spalte job_id.
Die Rangfunktion weist dann jeder Zeile in jeder Partition ein Ranking zu, wobei das niedrigste Gehalt in jeder Partition einen Rang von 1 und das höchste Gehalt in jeder Partition erhält, die einen Rang von n erhält (wobei n die Anzahl der Reihen in der Partition ist).
Ergebnis:
Abschluss
In diesem Tutorial haben Sie gelernt, wie man die Funktion von Oracle Rank () verwendet. Obwohl die Funktion rank () vorteilhaft sein kann, kann sie zu einem Leistungsverlust führen, insbesondere bei der Arbeit mit komplexen Abfragen und großen Datensätzen.