DENSE_RANK-Funktion Oracle/PLSQL

In diesem Oracle-Lernprogramm wird erläutert, wie Sie die Oracle/PLSQL DENSE_RANK-Funktion mit Syntax und Beispielen verwenden.

Beschreibung

Die Oracle/PLSQL DENSE_RANK-Funktion gibt den Rang einer Zeile in einer Gruppe von Zeilen zurück. Es ist der RANK-Funktion sehr ähnlich. Die RANK-Funktion kann jedoch nicht aufeinander folgende Rangfolgen verursachen, wenn die getesteten Werte gleich sind. Während die DENSE_RANK-Funktion immer zu aufeinanderfolgenden Rankings führt.

Die DENSE_RANK-Funktion kann auf zwei Arten verwendet werden – als Aggregatfunktion oder als Analytic-Funktion.

DENSE_RANK Funktion Syntax Nr. 1 – Wird als Aggregatfunktion verwendet

Als Aggregatfunktion gibt die DENSE_RANK-Funktion den dichten Rang einer Zeile innerhalb einer Gruppe von Zeilen zurück.

Die Syntax für die DENSE_RANK-Funktion, wenn sie als eine Aggregatfunktion verwandt wird, ist:

DENSE_RANK( expression1, … expression_n ) WITHIN GROUP ( ORDER BY expression1, … expression_n )

Parameter oder Argumente

expression1 .. expression_n Ein oder mehrere Ausdrücke, die eine eindeutige Zeile in der Gruppe identifizieren.

Notiz

  • Die DENSE_RANK-Funktion gibt einen numerischen Wert zurück.
  • In der ersten Ausdrucksliste muss dieselbe Anzahl von Ausdrücken vorhanden sein wie in der ORDER BY-Klausel.
  • Die Ausdruckslisten stimmen nach Position überein, sodass die Datentypen zwischen den Ausdrücken in der ersten Ausdrucksliste wie in der ORDER BY-Klausel kompatibel sein müssen.

Gilt für

Die DENSE_RANK-Funktion kann in folgenden Versionen von Oracle/PLSQL verwendet werden:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i

Beispiel (als Aggregatfunktion)

Sehen wir uns einige Oracle DENSE_RANK-Funktionsbeispiele an und untersuchen Sie, wie Sie die DENSE_RANK-Funktion in Oracle/PLSQL verwenden.

Beispielsweise:

Die obige SQL-Anweisung würde den dichten Rang eines Mitarbeiters mit einem Gehalt von 1000 und einem Bonus von 500 aus der Tabelle der Mitarbeiter zurückgeben.

DENSE_RANK Funktion Syntax Nr. 2 – Wird als analytische Funktion verwendet

Als eine Analytic-Funktion gibt die DENSE_RANK-Funktion den Rang jeder Zeile einer Abfrage mit Bezug auf die anderen Zeilen zurück.

Die Syntax für die DENSE_RANK-Funktion bei Verwendung als Analytic-Funktion lautet:

DENSE_RANK() OVER ( [ query_partition_clause] ORDER BY clause )

Notiz

  • Die DENSE_RANK-Funktion gibt einen numerischen Wert zurück.

Gilt für

Die DENSE_RANK-Funktion kann in den folgenden Versionen von Oracle/PLSQL verwendet werden:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Beispiel (als analytische Funktion)

Sehen wir uns einige Oracle DENSE_RANK-Funktionsbeispiele an und untersuchen Sie, wie Sie die DENSE_RANK-Funktion in Oracle/PLSQL verwenden.
Beispielsweise:

Die obige SQL-Anweisung würde alle Mitarbeiter zurückgeben, die in der Marketingabteilung arbeiten, und dann einen Rang für jedes einzelne Gehalt in der Marketingabteilung berechnen. Wenn zwei Mitarbeiter das gleiche Gehalt hatten, würde die Funktion DENSE_RANK für beide Mitarbeiter denselben Rang zurückgeben.