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

HTML-Bildlaufleisten-Textbereichsattributeinstellung

1. Überlaufinhalt-Überlaufeinstellungen (festlegen...

So installieren Sie JDK8 unter Windows

1. Herunterladen: http://www.oracle.com/technetwo...

Implementierung und Optimierung von MySql-Unterabfragen IN

Inhaltsverzeichnis Warum ist IN langsam? Was ist ...

...

Detailanalyse der MySQL-Berechtigungskontrolle

Inhaltsverzeichnis 1. Globale Ebene 2. Datenbanke...

Was bedeuten CN2, GIA, CIA, BGP und IPLC?

Was ist die CN2-Linie? CN2 steht für China Teleco...

Mehrere Möglichkeiten zum Speichern von Bildern in einer MySQL-Datenbank

Normalerweise müssen die von Benutzern hochgelade...

12 Gesetze des Webdesigns für sauberen Code [Grafik]

Schöner Code ist die Grundlage einer schönen Websi...