Verwenden der MySQL Dense_Rank -Funktion

Verwenden der MySQL Dense_Rank -Funktion
Die Funktion von MySQL dense_rank () ist eine Funktion, die den Rang einer Zeile in ihrer Partition ohne Lücken in den Ranking -Werten anzeigt. Diese Funktion ist eine Fensterfunktion, was bedeutet, dass sie Ähnlichkeiten mit Funktionen wie row_number () und Rank () Funktionen aufweist.

Dieses Tutorial wird tiefer in die Funktionsweise der MySQL -Dense -Funktion eingehen und wie wir sie in verschiedenen Datenbankvorgängen verwenden können. Wenn Sie diesem Tutorial folgen möchten, sollten Sie die Sakila -Beispieldatenbank aus der unten angegebenen Ressource herunterladen:

https: // dev.Mysql.com/doc/index-other.html

Grundnutzung

MySQL dense_rank () -Funktion zeigt die Ränge einer Zeile innerhalb einer Partition ohne Lücken an. Die Reihen der Zeilen steigen um einen Wert von 1 aus dem eindeutigen Rangwert der vorherigen Zeile.

Die allgemeine Syntax der Funktion Dense_Rank () lautet wie folgt:

Wählen Sie col1 dense_rank () over (Partition nach expr order nach expr [ASC | Desc]) rank_col_name aus tb_name

Lassen Sie uns die obige Abfragesyntax genauer untersuchen.

Die Funktion Dense_Rank () verbindet sich mit der Auswahlklausel, in der die Reihen der Zeilen aus der angegebenen Tabelle angezeigt werden.

Die Dense_Rank () über Abschnitte geben das Ergebnis der Funktion desse_rank () und die Ausgabe im angegebenen Spaltennamen zurück.

Die Partition durch Klausel unterteilt die Ergebnisse, die durch die From -Klausel in Partitionen zurückgegeben wurden. Die Funktion Dense_Rank () wird auf jede Partition angewendet.

Schließlich gibt die Reihenfolge nach Abschnitt die Reihenfolge der festgelegten Zeilen in jeder Partition an.

Beispiel Anwendungsfall

Verwenden wir eine Beispieldatenbank, um zu veranschaulichen, wie wir die Funktion Dense_Rank () verwenden können. In diesem Beispiel werden wir die Sakila -Datenbank und insbesondere die Filmtabelle in der Sakila -Datenbank verwenden.

Mit der Funktion Dense_Rank () können wir die Filme nach ihrer Mietrate bewerten, wie in der folgenden Abfrage gezeigt:

Benutze Sakila;
Wählen Sie Titel, Release_year, Bewertung, Länge, Dense_Rank () over (Partition von Release_year Order von Rent_rate ASC) Rank_Value aus dem Film;

Aufgrund der massiven Datenmenge in der Sakila-Datenbank werde ich die Ausgabe neu organisieren, um das Lesen und die Illustration zu vereinfachen.

Die Ausgabe ist unten:



Wenn Sie die obige Ausgabe genau ansehen, werden Sie feststellen. Die Rental_Rate -Werte lauten:

  1. 0.99 - Rang 1
  2. 2.99 - Rang 2
  3. 4.99 - Rang 3

Im obigen Beispiel haben wir die Partition per Klausel verwendet, um die resultierenden Sätze in verschiedene Partitionen zu unterteilen, in diesem Fall Release_year.

Als Nächst. Schließlich haben wir die Funktion Dense_Rank () auf jeder in der Reihenfolge nach Anweisung angegebenen Partition angewendet.

Abschluss

In diesem Tutorial haben wir erläutert, wie die Funktion dense_rank () in einer Datenbank funktioniert, und verwendeten ein Beispiel für reale Welt, um zu veranschaulichen.

Sie können mehr über DENSE_RANK () AD ANDERE Fensterfunktionen aus der unten angegebenen Ressource erfahren:

https: // dev.Mysql.com/doc/refman/8.0/en/Fensterfunktionen.html