MySQL verwendet benutzerdefinierte Sequenzen zur Implementierung von row_number-Funktionen (detaillierte Schritte)

MySQL verwendet benutzerdefinierte Sequenzen zur Implementierung von row_number-Funktionen (detaillierte Schritte)

Nachdem ich einige Artikel gelesen hatte, habe ich endlich herausgefunden, wie man die row_number()-Sortierung in MySQL implementiert.

Lassen Sie mich Ihnen ohne weitere Umschweife den Code zeigen:

Schritt 1: Erstellen Sie eine Tabelle:

Tabellennoten erstellen(
`Name` varchar(10),
`Betreff` varchar(10),
`Punktzahl` int(10)
)

Schritt 2: Daten schreiben

in Noten einfügen (Name, Fach, Note)
Werte('Xiao Ming', 'Chinesisch', 85),
('Xiaohua', 'Chinesisch', 89),
('Xiao Li', 'Chinesisch', 91),
('Xiaofang', 'Chinesisch', 93),
('Xiao Ming', 'Mathematik', 77),
('Xiaohua', 'Mathematik', 95),
('Xiao Li', 'Mathematik', 83),
('Xiaofang', 'Mathematik', 88),
('Xiao Ming', 'Englisch', 90),
('Xiaohua', 'Englisch', 92),
('Xiao Li', 'Englisch', 85),
('Xiaofang', 'Englisch', 88)

Die Daten lauten wie folgt:

Schritt 3:
Anforderung: Finde den zweiten Schüler in jedem Fach

Sortieren Sie zunächst:

Name, Betreff, Punktzahl auswählen 
von Noten
Sortiert nach Fach, Punktzahl absteigend

Die Daten lauten wie folgt:

Dann wird jedes Thema nach Gruppen sortiert

wähle (@i:=case wenn @subject_pre=t1.subject dann @i+1 sonst 1 Ende) als rn,
t1.*,
(@subject_pre:=Betreff) 
aus (
    Name, Betreff, Punktzahl auswählen 
    von Noten
    Sortiert nach Fach, Punktzahl absteigend
) t1, 
(wählen Sie @i:=0, @subject_pre:='') als t2
Gruppieren nach Thema, Punktzahl
Sortiert nach Fach, Punktzahl absteigend 

Zur Erklärung:
Fügen Sie ein Vergleichselement „subject_pre“ hinzu, um das vorherige Thema aufzuzeichnen.
Fügen Sie eine selbsterhöhende Sequenz hinzu, um die Index+1-Funktion zu implementieren.
Da die Daten bereits in der richtigen Reihenfolge vorliegen, wird die Sequenznummer um 1 erhöht, wenn das Objekt, auf das verwiesen wird, mit dem zuvor gespeicherten Objekt identisch ist. Andernfalls wird die Sequenznummer von 1 an neu berechnet.
Dadurch wird eine Gruppensortierung erreicht.

Nehmen Sie abschließend die Daten von rn=2 heraus

Wählen Sie Name, Fach und Punktzahl aus (
wähle (@i:=case wenn @subject_pre=t1.subject dann @i+1 sonst 1 Ende) als rn,
t1.Name,
t1.Betreff,
t1.Punktzahl,
(@subject_pre:=Betreff) 
aus (
Name, Betreff, Punktzahl auswählen 
von Noten
Sortiert nach Fach, Punktzahl absteigend
) t1, 
(wählen Sie @i:=0, @subject_pre:='') als t2
Gruppieren nach Thema, Punktzahl
Sortiert nach Fach, Punktzahl absteigend
)
wobei rn=2

Das Endergebnis ist wie folgt:

Auf diese Weise wird die Funktion row_number() mithilfe von MySQL implementiert.

Viele der Informationen, die ich im Internet gefunden habe, sind nicht klar formuliert, deshalb erkläre ich diese Implementierung hier anhand eines Beispiels. Ich hoffe, es wird Ihnen helfen!

Dies ist das Ende dieses Artikels über die Verwendung benutzerdefinierter Sequenzen in MySQL zur Implementierung der Funktion „row_number“. Weitere Informationen zur MySQL-Funktion „row_number“ finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Verwendung der MySQL-Funktionen row_number() und over()
  • Implementierungsprozess von row_number in MySQL
  • Verwendung und Vorsichtsmaßnahmen der Mysql-Sortierfunktion „row number()“

<<:  Detaillierte Erklärung der Prinzipien des responsiven Systems von Vue

>>:  HTML-Seite unterstützt die Implementierung des Dunkelmodus

Artikel empfehlen

Lösung für mehrere Docker-Container, die nicht die gleiche Portnummer haben

Hintergrund In Docker werden vier Container mit d...

js, um einen coolen Feuerwerkseffekt zu erzielen

In diesem Artikel finden Sie den spezifischen Cod...

Zusammenfassung einiger Vorschläge zum HTML-Code-Schreibstil

Das Protokoll der Ressourcendatei weglassen Es wi...

So verwenden Sie Javascript zum Erstellen einfacher Algorithmen

Inhaltsverzeichnis 1 Frage 2 Methoden 3 Experimen...

HTML-Tabellen-Markup-Tutorial (38): Rahmenfarben-Attribut der Kopfzeile BORDERCOLOR

Um die Tabelle zu verschönern, können Sie für die...

Analyse der Implementierung der Nginx Rush-Kaufstrombegrenzungskonfiguration

Aus geschäftlichen Gründen kommt es häufig zu Eil...

Detaillierter Informationsaustausch über das MySQL-Protokollsystem

Jeder, der schon einmal an einem großen System ge...

N Möglichkeiten, adaptive Teiler geschickt mit CSS zu implementieren

Trennlinien sind eine gängige Gestaltungsart auf ...

vue+el-upload realisiert den dynamischen Upload mehrerer Dateien

vue+el-upload Dynamischer Upload mehrerer Dateien...

Verwenden Sie thead, tfoot und tbody, um eine Tabelle zu erstellen

Manche Leute verwenden diese drei Tags auf pervers...

Unterschied zwischen src- und href-Attributen

Es besteht ein Unterschied zwischen src und href ...

Drei Prinzipien effizienten Navigationsdesigns, die Webdesigner kennen müssen

Das Entwerfen der Navigation für eine Website ist...

MySQL Infobright-Installationsschritte

Inhaltsverzeichnis 1. Verwenden Sie den Befehl „r...