MySQL DENSE_RANK Funktion

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 Klausel FROM erzeugten Ergebnismengen in Partitionen auf. Die Funktion DENSE_RANK() wird auf jede Partition angewendet.
  • Zweitens gibt die ORDER BY-Klausel die Reihenfolge der Zeilen in jeder Partition an, auf die die Funktion DENSE_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

MySQL DENSE_RANK() Funktionsbeispiel

Zur Demonstration verwenden wir die Tabelle sales, die im Tutorial zur Fensterfunktion erstellt wurde.

Tabelle Verkäufe

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:

MySQL DENSE_RANK - Rang den Vertriebsmitarbeitern zuweisen

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 die ORDER 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.