Каков наилучший способ получения рангов в MYSQL?
Какой лучший способ получить ранг строк в дополнение к данным строк в MYSQL?
Например, скажем, у меня есть список студентов, и я хочу получить оценку по GPA. Я знаю, что могу заказать по GPA, но каков самый быстрый способ заставить MYSQL возвращать ранг и в тех данных строки, которые я получаю?
2 ответа
Решение
Это вернет ранг как rownum
SELECT @rownum := @rownum + 1 rownum,
t.*
FROM (SELECT @rownum:=0) r,
(SELECT * FROM students ORDER BY gpa DESC) t;
Это вернет ранг студентов, студенческий билет и средний балл.
set @rownum := 0;
SELECT @rownum := @rownum + 1 AS rank, student_id, gpa
FROM `students` ORDER BY gpa DESC