Я пытаюсь составить таблицу лидеров и использовать следующий запрос:
SELECT d.*,
c.ranks
FROM (SELECT Max(correct_answer) AS correct_answer,
@rank := @rank + 1 Ranks
FROM (SELECT Max(correct_answer) AS correct_answer
FROM quiz_statuses
GROUP BY user_id,
level_no
ORDER BY correct_answer DESC) t,
(SELECT @rank := 0) r) c
INNER JOIN quiz_statuses d
ON c.correct_answer = d.correct_answer
Моя таблица выглядит следующим образом:
id,user_id,level_no,correct_answer
1 1 1 5
2 1 1 10
3 2 1 36
Ожидаемый результат должен быть следующим:
id,user_id,level_no,correct_answer,ranks
3 2 1 36 1
2 1 1 10 2
Но мой запрос не дает желаемого результата.