这是做 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