Каков наилучший способ получения рангов в 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
Другие вопросы по тегам