【Python500强大厂招聘面试题-SQL刷题】

题目描述:

1.原始数据是一列学生的成绩(称为:分数)。

2.编写一个 SQL 查询来实现对分数进行排序。

3.根据上述排序的结果,给出排名。

4.如果两个分数一样,则排名结果是一样的。

5.例如:100,90,90,80的排名是:1,2,2,4

欢迎大家转发,一起传播知识和正能量,帮助到更多人。辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn

解题思路:

步骤一(图1):对分数降序排序。

select a.Score as Score

from score a

order by a.Score DESC;

步骤二(图2):计算某个得分的排名,例如98分,统计大于98分的记录数,若为1,则98排名为1+1=2。

select count(b.Score)+1 as Rank from score b where b.Score > 98;

步骤三(图3):将前两个步骤结合,计算步骤1中a.Score的每一个记录的排名。即步骤2中的98改为步骤1中的a.Score。

select a.Score as Score,(select count(b.Score)+1 from score b where b.Score > a.Score) as Rank from score a order by a.Score DESC;

温馨期待:

期待大家提出宝贵建议,互相交流,收获更大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘经纬老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值