這是做 leetcode的數據庫的178.分數排序時有感而發的。具體見:https://blog.csdn.net/weixin_42845682/article/details/105252542
一、 dense_rank()的作用
dense_rank的作用是:進行排序。且當出現重複值時,不影響排名。
舉個例子,表名爲score,列爲id,score:
id score
1 80
2 90
3 80
4 40
使用dense_rank()對score進行排序時,則如下效果:
90 1
80 2
80 2
40 3
這個方法很好用,但是mysql中沒有啊…
二、 Mysql中如何實現dense_rank()的效果
如下:
select
s1.score Score,
(select
count(distinct(s2.score))
from scores s2
where s2.score >= s1.score
) as Rank
from scores s1
order by Rank