Angenommen, die Tabelle ist studentisch und die Daten lauten wie folgt:
Wir möchten die Funktion rank() in Oracle in MySQL implementieren, also innerhalb sortieren Die Gruppe, insbesondere: Es geht darum, die Studenten (Name) in der Studententabelle nach Kurs (Kurs) und nach Punktzahl (Punktzahl) zu ordnen.
Erstellen Sie zunächst eine neue gespeicherte Prozedur „reale_rank_in_MySQL“. Der Code lautet wie folgt:
DROP PROCEDURE IF EXISTS realize_rank_in_MySQL; DELIMITER ;; CREATE PROCEDURE realize_rank_in_MySQL() BEGIN DECLARE i int; SET i = 0; WHILE i < (select count(DISTINCT course) from student) DO SET @ROW =0; INSERT INTO student_rank SELECT *, (@ROW:=@ROW+1) AS rank FROM student WHERE course=(select DISTINCT course from student limit i,1) ORDER BY score DESC; set i = i + 1; END WHILE; END ;; DELIMITER ;
Geben Sie dann die folgende Abfrageanweisung ein:
drop table if exists student_rank; create table student_rank like student; alter table student_rank add rank int; call realize_rank_in_MySQL; select * from student_rank;
Das Ergebnis lautet wie folgt:
Hinweis: Die Rangfolge hier berücksichtigt nicht die Situation, in der die Rangfolge gleich ist, wenn die Punktzahlen gleich sind.
Verwandte Artikel:
MySQL-Rangfunktionsimplementierung_MySQL
Verwendung von Standard-SQL in Hive zur Implementierung der gruppeninternen Sortierung
Das obige ist der detaillierte Inhalt vonMySQL_Implementierung der gruppeninternen Sortierung – die Funktion der rank()-Funktion in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!