【Leetcode】178. Rank Scores

题目地址:

https://leetcode.com/problems/rank-scores/

给定一个Scores表,例如:

+----+-------+
| Id | Score |
+----+-------+
| 1  | 3.50  |
| 2  | 3.65  |
| 3  | 4.00  |
| 4  | 3.85  |
| 5  | 4.00  |
| 6  | 3.65  |
+----+-------+

要求返回每个Score的排名。每个Score都必须显示,如果有相同Score的,排名也设为相同,并且同一个Score出现多次的话,只当做出现一次参与排名。例如,上面的表格,应该得到的结果是:

+-------+---------+
| score | Rank    |
+-------+---------+
| 4.00  | 1       |
| 4.00  | 1       |
| 3.85  | 2       |
| 3.65  | 3       |
| 3.65  | 3       |
| 3.50  | 4       |
+-------+---------+

可以用内置函数DENSE_RANK(),这个函数会将每个记录按照某个字段排名,并列的记录排名一样,并且并列的记录只占一个排名。代码如下:

SELECT Score, DENSE_RANK() OVER (ORDER BY Score DESC) `Rank`
FROM Scores;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值