sql server排名函数DENSE_RANK的用法是什么
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章将为大家详细讲解有关sql server排名函数DENSE_RANK的用法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、需求之前sq
千家信息网最后更新 2025年01月22日sql server排名函数DENSE_RANK的用法是什么
这篇文章将为大家详细讲解有关sql server排名函数DENSE_RANK的用法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
一、需求
之前sql server 的排名函数用得最多的应该是RoW_NUMBER()了,我通常用ROW_NUMBER() + CTE 来实现分页;今天逛园,看到另一个内置排名函数还不错,自己顺便想了一个需求,大家可以花1分钟先想想要怎么实现。
需求很简单:求成绩排名前五的学生信息。
例如:
由于成绩可以并列,所以前五名可能有多个。例如:
测试数据:
declare @t table(ID int, StudentName nvarchar(15), Score int) insert into @tselect 1,'黄一',99 union allselect 2,'吴二',99 union allselect 3,'张三',99 union allselect 4,'李四',98 union allselect 5,'王五',97 union allselect 6,'赵六',96 union allselect 7,'田七',95 union allselect 8,'纪八',94 union allselect 9,'邱九',93 union allselect 10,'林十',92
二、自己实现
我的想法:既然可能出现并列,那么就用 DISTINCT 找到前五的成绩。ok,代码如下:
select t1.* from @t t1join(select distinct top 5 Score from @t order by Score desc) t2on t1.Score = t2.Score
看起来和上面的要求的结果还是不太一样,少了排序,当然我们可以在程序处理,这不是问题。
三、使用内置排名函数 DENSE_RANK
其实sql server已经内置了这样的函数可以帮助我们轻松实现,ok,直接上代码:
;with cte as( select dense_rank() over(order by Score desc) rank,* from @t)select * from cte where rank < 6
四、扩展,内置排名函数RANK
与 DENSE_RANK类似还有一个RANK函数,不过RANK函数不会顺序排名,而是根据序号排。有点绕,把上面的函数改为RANK()就知道了。
关于sql server排名函数DENSE_RANK的用法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
函数
成绩
需求
不错
代码
内容
文章
更多
知识
篇文章
面的
帮助
这不
信息
多个
学生
常用
序号
想法
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全知识竞答40道题答案
乡镇小学网络安全应急预案
网络技术中心管理制度
scum进服务器总是掉线
银行软件开发程序员公司前景
虚拟服务器怎么收费的
国防科技情报数据库
怎么在数据库上创建储户表
网络安全反馈表
软件开发app前十名
usb打印服务器驱动的安装方法
查看本地域名服务器的缓存
阿里云无影云服务器如何连接
怎么用数据玩我的世界服务器
开源 流媒体 服务器
阜南县网络安全宣讲团
安庆市弹性云服务器租赁
主机是如何确定本地域名服务器
网络服务器管理pdf
东软集团软件开发师工资
关于网络安全作文100字图片
数据库基础应用秋终结性考试
格力软件开发待遇怎么样好不好
hana网络技术的前景
软件开发部署服务器
服务器配置和设备的管理
医院数据网络安全方案
车子显示服务器错误怎么回事
怎么给服务器文件夹做管理
干货满满快来开启网络安全大作战