SQL刷题:排名的问题

题目

下图是"班级"表中的内容,记录了每个学生所在班级,和对应的成绩。
SQL刷题:排名的问题

题目要求

现在需要按成绩来排名,如果两个分数相同,那么排名要是并列的。

正常排名是1,2,3,4,但是现在前3名是并列的名次,排名结果是:1,1,1,2。

【解题思路】

1.涉及到排名问题,可以使用窗口函数(rank, dense_rank, row_number)

2.专用窗口函数rank, dense_rank, row_number有什么区别呢?

select *,
   rank() over (order by 成绩 desc) as ranking,
   dense_rank() over (order by 成绩 desc) as dese_rank,
   row_number() over (order by 成绩 desc) as row_num
from 班级

SQL刷题:排名的问题

原文连接:
https://leetcode-cn.com/problems/rank-scores/solution/tu-jie-sqlmian-shi-ti-jing-dian-pai-ming-wen-ti-by/

上一篇:DenseNet学习与tensorflow2实现


下一篇:Keras基础自学三(交叉验证)