SQL 178. 分数排名
SQL 排名 分数
2023-09-14 09:06:14 时间
题目 : https://leetcode.cn/problems/rank-scores/
数据
Create table If Not Exists Scores (
id int comment '主键',
score DECIMAL(3,2) comment '分数'
);
Truncate table Scores;
insert into Scores (id, score) values ('1', '3.5');
insert into Scores (id, score) values ('2', '3.65');
insert into Scores (id, score) values ('3', '4.0');
insert into Scores (id, score) values ('4', '3.85');
insert into Scores (id, score) values ('5', '4.0');
insert into Scores (id, score) values ('6', '3.65');
需求
查询对分数进行排序
排名规则:
- 分数应按从高到低排列
- 如果两个分数相等,那么两个分数的排名应该相同
- 在排名相同的分数后,排名数应该是下一个连续的整数。换句话说,排名之间不应该有空缺的数字
- 按 score 降序返回结果表
查询结果 :
| score | rank |
| 4.00 | 1 |
| 4.00 | 1 |
| 3.85 | 2 |
| 3.65 | 3 |
| 3.65 | 3 |
| 3.50 | 4 |
解决
技术点 :
row_number()
: 同值不同名,类似行号,如 : 3000、2000、2000、1000 , 排名 : 1、2、3、4rank()
: 同值同名,有跳级,如 : 3000、2000、2000、1000 , 排名 : 1、2、2、4dense_rank()
: 同值同名,无跳级,如 : 3000、2000、2000、1000 , 排名 : 1、2、2、3
select score,
dence_rank() over(order by score desc) as rank
from Scores
相关文章
- SQL Server 登录名、服务器角色、用户名和数据库角色 --- 解释
- PL/SQL编程基本概念
- MySQL在大数据、高并发场景下的SQL语句优化和"最佳实践"
- SQL Server实现 LeetCode 178 分数排名
- asp.net sql无限极分类实例程序
- 删除sql server用户时报15138错误
- .NET和SQL Server中“空值”辨析 (DBNull与Null的区别)
- SQL SERVER服务器链接连接(即sql server的跨库连接)
- [翻译]:SQL死锁-阻塞探测
- 通过一个小问题来学习SQL关联查询
- 【异常】MyBatis-Plus因@TableId错误使用,导致主键未生成,SQL异常提示SQLException: Field ‘xxx‘ doesn‘t have a default value
- SQL Editor and reconnect【mysql(workbench)更新数据时候的一个异常】【Error Code:1175】
- SQL面试常见问题总结指南
- Sql中把datetime转换成字符串(CONVERT)
- 【SQL开发实战技巧】系列(三):SQL排序的那些事
- SQL SERVER 表变量和临时表
- SysInfoTools MS SQL Transaction Log Recovery 22.0
- MySQL数据库和SQL语句
- SQL每日一练——第3天: 条件查询