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

Einführung in die Verwendung sowie Vor- und Nachteile von MySQL-Triggern

Inhaltsverzeichnis Vorwort 1. Trigger-Übersicht 2...

MySQL 5.7.17 neuestes Installationstutorial mit Bildern und Text

mysql-5.7.17-winx64 ist die neueste Version von M...

Detaillierte Erläuterung der Nginx-Anti-Hotlink- und Anti-Crawler-Konfiguration

Erstellen Sie eine neue Konfigurationsdatei (gehe...

MySQL Slow Query-Optimierung: Die Vorteile von Limit aus Theorie und Praxis

Oftmals erwarten wir, dass das Abfrageergebnis hö...

Analyse und Praxis des serverseitigen Rendering-Prinzips von React

Die meisten Leute haben schon einmal vom Konzept ...

js zur Realisierung der automatischen Sperrbildschirmfunktion

1. Anwendungsszenarien Es gibt eine solche Anford...

Einführung in useRef und useState in JavaScript

Inhaltsverzeichnis 1. useState-Hook 2. useRef-Hoo...

Verwandte Vorgänge zum Hinzufügen und Löschen von Indizes in MySQL

Inhaltsverzeichnis 1. Die Rolle des Index 2. Erst...

Upgrade von MySQL 5.1 auf 5.5.36 in CentOS

Dieser Artikel beschreibt den Upgrade-Prozess von...

Klassen in TypeScript

Inhaltsverzeichnis 1. Übersicht 2. Definieren Sie...