Detaillierte Erläuterung des Implementierungsbeispiels für die Gruppenrangfolge im MySQL-Tutorial

Detaillierte Erläuterung des Implementierungsbeispiels für die Gruppenrangfolge im MySQL-Tutorial

1. Datenquelle

Bildbeschreibung hier einfügen

2. Gesamtrangfolge der Daten

1) Allgemeine Rangliste

Beginnend bei 1 werden die Zahlen absteigend gereiht (derselbe Wert hat dabei einen anderen Rang).

setze @rank =0;
wählen 
	Stadt,
	Punktzahl, 
	@Rang := @Rang+1 Rang 
von cs 
Sortieren nach Punktzahl absteigend;

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

2) Gleichstand bei der Rangliste

Identische Werte haben den gleichen Rang (es bleiben aber keine leeren Plätze übrig).

setze @rank=0,@price=null;
wähle cs.*,
 Fall, wenn @Preis = Punktzahl, dann @Rang 
 wenn @price := Punktzahl dann @rank := @rank+1 Endrang  
 von cs nach Punktzahl absteigend sortieren;
 -- Wenn der Abfrage-Scorewert = @price ist, wird @rank ausgegeben,
 -- Wenn sie nicht gleich sind, weisen Sie @price den Score-Wert zu und geben Sie @rank := @rank+1 aus.
 
- oder setzen Sie @rank=0,@price=null;
wählen 
	eine.Stadt, eine.Punktzahl, ein.Rang 
aus 
(cs.* auswählen,
	@rank := wenn(@p=score,@rank,@rank+1) Rang,
	@p := Punktzahl
von cs 
Sortieren nach Punktzahl absteigend) a;

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

3) Gleichstand bei der Rangliste

Der gleiche Wert hat den gleichen Rang (lässt aber eine Leerstelle).

setze @rank=0,@price=null, @z=1;
wählen 
	eine.Stadt, eine.Punktzahl, ein.Rang 
aus 
(wählen 
	cs.*,
	@rank := wenn(@p=score,@rank,@z) Rang,
	@p := Punktzahl,@z :=@z+1
von cs 
Sortieren nach Punktzahl absteigend) a;

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

3. Rangfolge innerhalb der Gruppe nach der Datengruppierung

1) Gesamtrangliste der Gruppe

Beginnend bei 1 werden die Zahlen absteigend gereiht (derselbe Wert hat dabei einen anderen Rang).

setze @rank=0,@c=null;
wählen 
	cs.Stadt,cs.Score,
	@rank := wenn(@c = Stadt,@rank+1,1) Rang,
	@c := Stadt
von cs 
Sortieren nach cs.city,cs.score;

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

2) Gleichstand nach Gruppierung

Elemente mit gleichem Wert haben innerhalb einer Gruppe die gleiche Rangfolge und belegen keine leeren Positionen.

setze @rank=0,@c=null,@s=null;
wählen 
	cs.Stadt,cs.Score,
	@rank := wenn(@c=Stadt,wenn(@s=Punktzahl,@rank,@rank+1),1) Rang ,
	@c := Stadt,
	@s :=Punktzahl 
von cs 
Sortieren nach cs.city,cs.score;

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

3) Gleichstand nach Gruppierung

Elemente mit gleichem Wert innerhalb einer Gruppe haben die gleiche Rangfolge und müssen leere Positionen besetzen.

setze @rank=0,@c=null,@s=null;
wählen 
	cs.Stadt,cs.Score,
	@rank := wenn(@c=Stadt,wenn(@s=Punktzahl,@rank,@rank+1),1) Rang ,
	@c := Stadt,
	@s :=Punktzahl 
von cs 
Sortieren nach cs.city,cs.score;

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

4. Nach der Gruppierung nehmen Sie die beiden besten jeder Gruppe

① Methode 1: Drei Möglichkeiten zum Gruppieren und Ranking und anschließendes Begrenzen des Rankingwerts

setze @rank=0,@z=0,@c=null,@s=null;
Wählen Sie eine Stadt, eine Punktzahl und einen Rang aus 
(wählen 
	cs.city Stadt,cs.score Punktzahl,
	@z := wenn(@c=Stadt,@z+1,1),
	@rank := wenn(@c=Stadt,wenn(@s=Punktzahl,@rank,@z),1) Rang,
	@c := Stadt,
	@s :=Punktzahl 
von cs 
Sortieren nach cs.city,cs.score desc) a
wobei a.rank<=2;

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

② Interne Anfrage

WÄHLEN SIE * VON cs c
WO (
    WÄHLEN Sie Anzahl (*) aus cs
    WO c.city=cs.city UND c.score<cs.score )<2
ORDER BY Stadt, Punktzahl DESC;

Die Ergebnisse sind wie folgt:

Bildbeschreibung hier einfügen

Das Ausführungsprinzip des obigen Codes ist wie folgt:

Bildbeschreibung hier einfügen

Oben finden Sie den detaillierten Inhalt des Implementierungsbeispiels für die Gruppenrangfolge im MySQL-Tutorial. Weitere Informationen zur Gruppenrangfolge im MySQL-Tutorial finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Zählen Sie die Klassifizierung von SQL-Anweisungen in MySQL
  • MySQL-Klassifizierungsrangfolge und Gruppierung TOP N Beispiele detaillierte Erklärung

<<:  Passen Sie den Stil des Elements <input type="file"> an, das beim Hochladen von Dateien in HTML verwendet wird

>>:  Einführung in die gängigen Festplattenverwaltungsbefehle von Linux

Artikel empfehlen

Implementierung des iview-Berechtigungsmanagements

Inhaltsverzeichnis iview-admin2.0 integrierte Ber...

Implementierung der MySQL-Dezimaldatentypkonvertierung

Kürzlich stieß ich auf eine Datenbank mit folgend...

Ein Beispiel, wie JavaScript doppelte Netzwerkanforderungen verhindern kann

Vorwort Während der Entwicklung stoßen wir häufig...

Was tun, wenn der von Docker Run gestartete Container hängt und Daten verliert?

Szenariobeschreibung In einem bestimmten System w...

So exportieren Sie eine CSV-Datei mit Header in MySQL

Siehe das offizielle Dokument http://dev.mysql.co...

Installationstutorial für MySQL 5.1 und 5.7 unter Linux

Das Betriebssystem für die folgenden Inhalte ist:...

React-Diagramm Serialisierung JSON Interpretation Fallanalyse

Das Ziel dieses Dokuments ist es, die JSON-Serial...

Vue-Ereignisparameter $event = Ereigniswertfall

Vorlage <el-table :data="Datenliste"...

Detailliertes Tutorial zur Offline-Installation von MySQL unter CentOS7

1. Löschen Sie die ursprüngliche MariaDB, sonst k...

Lösung für MySQL-Fehlercode 1862 Ihr Passwort ist abgelaufen

Der Blogger hat MySQL ein oder zwei Monate lang n...

So erstellen Sie eine lnmp-Umgebung im Docker

Erstellen eines Projektverzeichnisses mkdir php E...