Heim >Datenbank >MySQL-Tutorial >So erreichen Sie ein Ranking in MySQL

So erreichen Sie ein Ranking in MySQL

coldplay.xixi
coldplay.xixiOriginal
2020-09-28 13:34:143357Durchsuche

So erreichen Sie ein Ranking in MySQL: Verwenden Sie die Demo-Funktion. Die Syntax lautet [SELECT banji,avg(score) as AvgS FROM table_test GROUP BY banji ORDER BY AvgS DESC].

So erreichen Sie ein Ranking in MySQL

So erreichen Sie ein Ranking in MySQL:

kann mit Demo implementiert werden

Beachten Sie, dass das A darin eine verschachtelte Abfrage ist, sodass das Ranking korrekt ist.

FROM
(
     SELECT A.*,@rank:=@rank+1 as pm
     FROM 
     (
      SELECT banji,avg(score) as AvgS FROM table_test GROUP BY banji  ORDER BY AvgS   DESC
     ) A ,(SELECT @rank:=0) B
) M
ORDER BY M.banji

Wenn darin keine Unterabfrage vorhanden ist und das folgende SQL verwendet wird, ist die Sortierung falsch. Was schief geht, hängt davon ab, ob es in GROUP BY mehr als eine Gruppierung gibt.

SELECT banji,avg(score) as AvgS ,@rank:=@rank+1 as pm
FROM table_test A,(SELECT @rank:=0) B
GROUP BY banji
ORDER BY AvgS   DESC

Grund: @rank-Ranking erfolgt vor GROUP BY. Mit „GRUPPE NACH“ werden die Ranglistenergebnisse gruppiert. Wenn Sie gruppierte Ergebnisse in eine Rangfolge bringen möchten, verwenden Sie eine Unterabfrage.

Weitere verwandte kostenlose Lernempfehlungen: MySQL-Tutorial(Video)

Das obige ist der detaillierte Inhalt vonSo erreichen Sie ein Ranking in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn