Ошибка в запросе MySQL для получения рейтинга от общего балла

0

Я хочу получить ранг на основе общей отметки в таблице учеников.

SET @PreviousRecord = NULL;
SET @Rank = 0;
SELECT studentid,total,result CASE
    WHEN @PreviousRecord = total 
        THEN @Rank
    WHEN @PreviousRecord := total 
        THEN @Rank := @Rank + 1
    END AS ranks
FROM studentdetails

ORDER BY total;

Его работа не была ошибкой, поскольку

В ходе анализа было обнаружено 20 ошибок. Непризнанное ключевое слово. (около "CASE" в позиции 30) Непризнанное ключевое слово. (около "КОГДА" в позиции 37) Неожиданный токен. (рядом с "@PreviousRecord" в позиции 42) Неожиданный токен. (около "=" в позиции 58) Неожиданный токен. (около "всего" в позиции 60) Непризнанное ключевое слово. (около "THEN" в позиции 80) Неожиданный токен. (рядом с "@Rank" в позиции 85) Нераспознанное ключевое слово. (около "КОГДА" в позиции 93) Неожиданный токен. (рядом с "@PreviousRecord" в позиции 98) Неожиданный токен. (около ": =" в позиции 114) Неожиданный токен. (около "всего" в позиции 117) Непризнанное ключевое слово. (около "THEN" в позиции 137) Неожиданный токен. (рядом с "@Rank" в позиции 142) Неожиданный токен. (около ": =" в позиции 148) Неожиданный токен. (рядом с "@Rank" в позиции 151) Неожиданный токен. (около "+" при po

Моя структура таблицы

Изображение 174551

  • 0
    предоставьте свой полный запрос.
  • 0
    Вот и весь мой запрос
Показать ещё 1 комментарий
Теги:

1 ответ

2
Лучший ответ
SET @Rank = 0;
SELECT @Rank := @Rank+1,Z.studentid,Z.total
FROM
(
SELECT studentid,total
FROM studentdetails order by total
)Z

Попробуйте выполнить запрос.

  • 1
    Можете ли вы сказать, что Z означает в вашем запросе
  • 0
    я только что дал псевдоним подзапросу.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню