1. 题目
-
题目来源:SQL63 刷题通过的题目排名
-
题目描述
输出通过的题目的排名,通过题目个数相同的,排名相同,此时按照id升序排列 -
一张表

-
所需结果

2. 题解
非常简单,使用排序窗口函数即可。
SELECT id,
number,
DENSE_RANK() OVER(ORDER BY number DESC) t_rank
FROM passing_number
ORDER BY t_rank ASC, id ASC
需要注意的有两点:
1、三种排序窗口函数的选择:
rank:并列相同,且跳跃排序dense rank:并列相同,不进行跳跃row_number:自然排列,不进行并列
2、全局排序****不需要在OVER()函数中使用PARATIATION BY分组
SQL63刷题排名解析:通过题目排序与窗口函数应用
本文解析了如何利用SQL的DENSE_RANK窗口函数,根据通过题目数量和ID对SQL63刷题排名进行排序。重点讲解了rank、densesrank和row_number的区别,并指出无需在窗口函数内使用PARTITION BY。适合学习者了解数据库操作技巧。
581

被折叠的 条评论
为什么被折叠?



