SQL63 刷题通过的题目排名

本文深入探讨了SQL中的dense_rank()和rank()函数,详细解释了它们在数值排序时的区别。dense_rank()在遇到相等值时不会跳过排名,而rank()则会。举例来说,当使用dense_rank()对passing_number表按number字段降序排序时,相同分数将获得相同排名,且ID较小的记录会排在前面。文章通过具体查询语句展示了这两个函数的用法。
摘要由CSDN通过智能技术生成

原题链接:
https://www.nowcoder.com/practice/cd2e10a588dc4c1db0407d0bf63394f3?tpId=82&&tqId=35080&rp=1&ru=/ta/sql&qru=/ta/sql/question-ranking

排序的函数:
dense_rank():按值排序,值相等的时候会跳,可能存在多个第二名或第三名那种,类似比赛的排序。
rank():按值排序,值相等的时候不会跳,继续排序,可能存在相同分数不同排名的情况
dense_rank() over (order by number desc) 通过 number 降序的顺序进行排序,相同分数,同样的排名,相同排名,id 小的在前面,默认升序

select id, number, dense_rank() over(order by NUMBER desc) as t_rank
from passing_number
order by t_rank, id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_努力努力再努力_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值