1
Я пишу следующую команду MySQL, чтобы получить сумму баллов для студентов и ранжировать их соответственно.Как получить ранг конкретного пользователя на основе суммирования баллов?
SELECT student_id, thescore, @rownum:[email protected] + 1 AS rankstudent
FROM
(
SELECT student_id, SUM(score) AS thescore
FROM school_ranking
WHERE school like '%Standard6%' and student_id <> ''
GROUP BY student_id
ORDER BY thescore DESC
) Sub1
CROSS JOIN (SELECT @rownum:=0) Sub2
Ниже приводится результат:
student_id thescore rankstudent
J007766 5739 1
J007625 5159 2
J007629 5158 3
J007713 4460 4
J007690 4384 5
Мой вопрос заключается в том, чтобы получить звание для конкретного студента? Например, как получить звание ученика с идентификатором «J007625»?
я выполнить команду и получить rankstudent = 1. J007625 находится на втором месте, и ответ должен быть rankstudent = 2. –
@ босса-центральный редактировал запрос. Попробуй это. – Wistar
Wistar, код работает отлично, и дает правильный рейтинг. Отличная работа! Большое вам спасибо за вклад и помощь. –