Zusammenfassung: In diesem Tutorial lernen Sie die MySQL DENSE_RANK()
Funktion kennen und wie man sie anwendet, um den Rang einer Zeile in einer Partition oder Ergebnismenge zu finden.
Einführung in die MySQL DENSE_RANK Funktion
Die DENSE_RANK()
Funktion ist eine Fensterfunktion, die jeder Zeile innerhalb einer Partition oder Ergebnismenge einen Rang zuweist, ohne Lücken in den Rangwerten.
Der Rang einer Zeile wird von der Anzahl der eindeutigen Rangwerte, die vor der Zeile stehen, um eins erhöht.
Die Syntax der Funktion DENSE_RANK()
lautet wie folgt:
Code language: SQL (Structured Query Language) (sql)
In dieser Syntax:
- Zunächst teilt die Klausel
PARTITION BY
die durch die KlauselFROM
erzeugten Ergebnismengen in Partitionen auf. Die FunktionDENSE_RANK()
wird auf jede Partition angewendet. - Zweitens gibt die
ORDER BY
-Klausel die Reihenfolge der Zeilen in jeder Partition an, auf die die FunktionDENSE_RANK()
wirkt.
Wenn eine Partition zwei oder mehr Zeilen mit demselben Rangwert hat, wird jeder dieser Zeilen derselbe Rang zugewiesen.
Im Gegensatz zur Funktion RANK()
gibt die Funktion DENSE_RANK()
immer aufeinander folgende Rangwerte zurück.
Angenommen, wir haben eine Tabelle t
mit einigen Stichprobendaten wie folgt:
Code language: SQL (Structured Query Language) (sql)
Die folgende Anweisung verwendet die Funktion DENSE_RANK()
, um jeder Zeile einen Rang zuzuweisen:
Code language: SQL (Structured Query Language) (sql)
Hier ist die Ausgabe:
MySQL DENSE_RANK() Funktionsbeispiel
Zur Demonstration verwenden wir die Tabelle sales
, die im Tutorial zur Fensterfunktion erstellt wurde.
Die folgende Anweisung verwendet die Funktion DENSE_RANK()
, um die Vertriebsmitarbeiter nach Verkaufsbetrag zu ordnen.
Code language: SQL (Structured Query Language) (sql)
Die Ausgabe sieht wie folgt aus:
In diesem Beispiel:
- Zunächst unterteilt die
PARTITION BY
-Klausel die Ergebnismengen anhand des Geschäftsjahres in Partitionen. - Zweitens gibt die
ORDER BY
-Klausel die Reihenfolge der Vertriebsmitarbeiter nach Umsatz in absteigender Reihenfolge an. - Drittens wird die Funktion
DENSE_RANK()
auf jede Partition mit der durch dieORDER BY
-Klausel angegebenen Reihenfolge der Zeilen angewendet.
In diesem Tutorium haben Sie gelernt, wie Sie die MySQL-Funktion DENSE_RANK()
verwenden, um die Zeilen in jeder Partition einer Ergebnismenge zu ordnen.
- War dieses Tutorium hilfreich?
- JaNein