MySQL - Как сделать Oracle RANK () OVER (ORDER BY оценка DESC)
Я знаком с Oracle и обычно делаю RANK () (ORDER BY Score DESC) AS, чтобы получить ранг, подобный этому:
Score | Rank
--------------
100 | 1
100 | 1
99 | 3
98 | 4
98 | 4
98 | 4
97 | 7
Я не знаю, как это сделать в MySQL - посмотрев здесь, я нашел это:
SET @prev_value = NULL;
SET @rank_count = 0;
SELECT score
, CASE
WHEN @prev_value = score
THEN @rank_count
WHEN @prev_value := score
THEN @rank_count := @rank_count + 1
END AS rank
FROM ...
но это возвращает это как:
Score | Rank
--------------
100 | 1
100 | 1
99 | 2
98 | 3
98 | 4
98 | 4
97 | 5
Что не совсем то, что я хотел.