MySQL MariaDB

MySQL-Zeilennummer-Fensterfunktion

MySQL-Zeilennummer-Fensterfunktion
Innerhalb von MySQL enthält eine ROW NUMBER()-Methode eine chronologische Nummer für jede Zeile innerhalb der Partition. Es ist nur eine Art Fensterfunktion. Die Zeilenzahl beginnt bei 1 mit der Zeilenzahl innerhalb der Partition. Denken Sie daran, vor Version 8.0, MySQL erlaubt die Funktion ROW NUMBER() nicht, bietet jedoch eine Session-Variable, die hilft, diese Funktion zu imitieren. Wir werden in diesem Handbuch mehr über die MySQL ROW NUMBER()-Funktionalität erfahren und eine fortlaufende Nummer für jede Zeile in der Ergebnissammlung erstellen. In MySQL werden die ROW_NUMBER()-Methoden mit einer der folgenden Klauseln verwendet:

Syntax:

>> WÄHLE spaltenname, ROW_NUMBER() OVER (PARTITION BY spaltenname, ORDER BY spaltenname) AS zeilennummer FROM Tabellenname;

Lassen Sie uns die MySQL-Befehlszeilen-Client-Shell aus den Anwendungen öffnen und das Passwort eingeben, um sich anzumelden.

Sie müssen eine neue Tabelle erstellen oder die Standardtabelle verwenden, um mit der Arbeit an der Zeilennummernfunktion zu beginnen. Wie in der folgenden Abbildung dargestellt, haben wir eine Tabelle „Tiere“ im Schema „Daten“ mit einigen Datensätzen darin. Lassen Sie uns seine Datensätze mit der SELECT-Anweisung abrufen.

>> AUSWÄHLEN * AUS Daten.Tiere;

Beispiel 01: ROW_NUMBER() mit der ORDER BY-Klausel

Wir werden dieselbe Tabelle verwenden, um einige Beispiele der Zeilennummernfunktion zu erläutern. Wir nehmen ein Beispiel für die Funktion ROW_NUMBER() gefolgt von Over(), während wir nur die ORDER BY-Klausel verwenden. Wir haben alle Datensätze geholt, während wir die Zeilen gemäß der Spalte "Preis" nummeriert haben. Wir haben einer Spalte den Namen „row_num“ gegeben, die die Nummern der Zeile speichert. Versuchen wir es mit dem folgenden Befehl.

>> AUSWÄHLEN *, ROW_NUMBER() OVER ( ORDER BY Price ) AS row_num FROM data.Tiere;

Beim Ausführen der obigen Abfrage sehen wir, dass die Zeilen mit Nummern gemäß der Sortierreihenfolge der Spalte „Preis“ belegt wurden. Du denkst vielleicht, dass einige kleinere Preise oben in der Spalte stehen sollten und danach sollte es sortiert werden. Aber die ORDER BY-Klausel sieht nur die erste Ziffer oder das erste Alphabet der Spalte, um die Werte zu sortieren.

Führen wir dieselbe Abfrage gefolgt von der ORDER BY-Klausel aus, während wir die Sortierreihenfolge der Spalte „Alter“ verwenden. Die Ausgabe erfolgt entsprechend der Spalte „Alter“.

>> AUSWÄHLEN *, ROW_NUMBER() OVER ( ORDER BY Alter ) AS row_num FROM data.Tiere;

Beispiel 02: ROW_NUMBER() Verwendung der PARTITION BY-Klausel

Wir werden die einzige PARTITION BY-Klausel in der ROW_NUMBER()-Abfrage verwenden, um die Ergebnisse zu überprüfen. Wir haben die SELECT-Abfrage verwendet, um die Datensätze abzurufen, gefolgt von der ROW_NUMBER()- und der OVER-Klausel, während wir die Tabelle gemäß der Spalte "Farbe" partitionieren. Führen Sie den unten angehängten Befehl in der Befehlsshell aus.

>> AUSWÄHLEN *, ROW_NUMBER() OVER ( PARTITION BY Color ) AS row_num FROM data.Tiere;

Im Ergebnis sehen Sie, dass die Nummerierung der Zeilen in Partitionen entsprechend der Sortierreihenfolge der Farben vergeben wurde. Da wir 4 Werte für die Farbe „Schwarz“ haben, die 4 Zeilen benötigt. Deshalb hat es vierreihige Nummern von 1 bis 4 und umgekehrt.

Versuchen Sie es mit dem gleichen Beispiel, diesmal unterteilt nach der Spalte „Geschlecht“. Wie wir wissen, haben wir in dieser Tabelle nur zwei Geschlechter, deshalb werden 2 Partitionen gebildet. Weibchen besetzen 9 Reihen, deshalb hat es eine Reihennummerierung von 1 bis 9. Während Männer 8 Werte haben, hat es deshalb 1 bis 8.

>> SELECT *, ROW_NUMBER() OVER ( PARTITION BY Gender ) AS row_num FROM data.Tiere;

Beispiel 03: ROW_NUMBER() Verwendung von PARTITION BY & ORDER BY

Wir haben die beiden obigen Beispiele in der MySQL-Befehlszeile gemacht, jetzt ist es an der Zeit, das ROW_NUMBER()-Beispiel in der MySQL Workbench 8 auszuführen.0. Öffnen Sie also die MySQL Workbench 8.0 aus den Anwendungen. Verbinden Sie die MySQL Workbench mit der lokalen Host-Root-Datenbank, um mit der Arbeit zu beginnen.

Auf der linken Seite der MySQL Workbench finden Sie die Schema-Leiste, blasen Sie den Navigator. In dieser Schemaleiste finden Sie die Liste der Datenbanken. Unter der Datenbankliste haben Sie verschiedene Tabellen und gespeicherte Prozeduren, wie Sie in der folgenden Abbildung sehen können. Wir haben verschiedene Tabellen in unserer Datenbank 'data'. Wir werden die Tabelle 'order1' mit dem SELECT-Befehl im Abfragebereich öffnen, um sie für die Implementierung der Funktion ROW_NUMBER() zu verwenden.

>> AUSWÄHLEN * AUS Daten.Bestellung1;

Die Tabelle „order1“ wurde in der Rasteransicht wie unten gezeigt angezeigt. Sie können sehen, dass es 4 Spaltenfelder hat, ID, Region, Status und OrderNo. Wir werden alle Datensätze dieser Tabelle abrufen, während wir die Klauseln ORDER BY und PARTITION BY gleichzeitig verwenden.

Im Abfragebereich von MySQL Workbench 8.0, geben Sie die unten angezeigte Abfrage ein. Die Abfrage wurde mit der SELECT-Klausel gestartet und holt alle Datensätze, gefolgt von der Funktion ROW_NUMBER() zusammen mit der OVER-Klausel. Nach der OVER-Klausel haben wir die Spalte „Status“ angegeben, gefolgt von der „PARTITION BY“-Anweisung, um die Tabelle gemäß dieser Tabelle in Partitionen zu unterteilen. Die ORDER BY-Klausel wird verwendet, um die Tabelle absteigend gemäß der Spalte „Region“ anzuordnen. Die Zeilennummern werden in der Spalte „row_num“ gehalten. Tippen Sie auf das Blitzsymbol, um diesen Befehl auszuführen.

Das unten angezeigte Ergebnis wird angezeigt. Zunächst wurde die Tabelle gemäß den Werten der Spalte „Status“ in zwei Teile unterteilt. Danach wurde es in absteigender Reihenfolge der Spalte 'Region' dargestellt und den Partitionen wurden die Zeilennummern zugewiesen.

Fazit:

Schließlich haben wir alle erforderlichen Beispiele für die Verwendung der Funktion ROW_NUMBER() in MySQL Workbench und MySQL Command-line Client Shell abgeschlossen.

Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...
Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...