详解SQL中的排名问题

我们先创建一个测试数据表Scores
WITH t AS (SELECT 1 StuID,详解70 Score UNION ALL SELECT 2,85 UNION ALL SELECT 3,85 UNION ALL SELECT 4,80 UNION ALL SELECT 5,74 ) SELECT * INTO Scores FROM t; SELECT * FROM Scores结果如下:

1、ROW_NUMBER()
定义:ROW_NUMBER()函数作用就是名问将SELECT查询到的数据进行排序,每一条数据加一个序号,详解他不能用做于学生成绩的名问排名,一般多用于分页查询,详解比如查询前10个 查询10-100个学生。名问
1.1 对学生成绩排序
示例
SELECT ROW_NUMBER() OVER (ORDER BY SCORE DESC) AS [RANK],详解* FROM Scores;(提示:可以左右滑动代码)
结果如下:

这里RANK就是每个学生的排名后的次序, 根据Score进行DESC倒序
1.2 获取第2名的名问成绩信息
SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores ) t WHERE t.RANK=2;结果:

这里用到的思想就是 分页查询的思想 在原sql外再套一层SELECT
WHERE t.RANK>=1 AND t.RANK<=3 是不是就是获取前三名学生的成绩信息了。
2、详解RANK()
定义:RANK()函数,名问顾名思义排名函数,详解可以对某一个字段进行排名,名问这里和ROW_NUMBER()有什么不一样呢?详解ROW_NUMBER()是排序,当存在相同成绩的名问学生时,ROW_NUMBER()会依次进行排序,详解他们序号不相同,WordPress模板而Rank()则不一样。如果出现相同的,他们的排名是一样的。下面看例子:
示例
SELECT ROW_NUMBER() OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores; SELECT RANK() OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores;结果:

上面是ROW_NUMBER()函数的结果,下面是RANK()函数的结果。
当出现两个学生成绩相同是里面出现变化。RANK()是1-1-3-4-5,而ROW_NUMBER()则还是1-2-3-4-5,这就是RANK()和ROW_NUMBER()的区别了
3、DENSE_RANK()
定义:DENSE_RANK()函数也是排名函数,和RANK()功能相似,也是对字段进行排名,那它和RANK()到底有什么不同那?特别是对于有成绩相同的情况,DENSE_RANK()排名是云南idc服务商连续的,RANK()是跳跃的排名,一般情况下用的排名函数就是RANK() 我们看例子:
示例
SELECT RANK() OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores; SELECT DENSE_RANK() OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores;结果:

上面是RANK()的结果,下面是DENSE_RANK()的结果
4、NTILE()
定义:NTILE()函数是将有序分区中的行分发到指定数目的组中,各个组有编号,编号从1开始,就像我们说的分区一样 ,分为几个区,一个区会有多少个。
SELECT NTILE(1) OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores; SELECT NTILE(2) OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores; SELECT NTILE(3) OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores;结果:

就是将查询出来的记录根据NTILE函数里的参数进行平分分区。
这几兄弟就介绍完了,有空再给大家介绍分组排名的问题。
服务器租用相关文章
宏基E5-532G-C98P的性能与优势(一款高性能、全能的笔记本电脑)
摘要:宏基E5-532G-C98P是一款备受赞誉的笔记本电脑,具有出色的性能和全面的功能,适用于各种使用场景。下面将介绍它的各个方面的特点和优势。1.强悍的处理器性能宏基E5...2025-11-03
超8000加密货币钱包被黑客卷走数百万Solana与USDC资产
昨日,外媒报道 Nomad 代币桥遭遇了漏洞攻击,导致其 1.9 亿美元资产被掏空。与此同时,不知名的攻击者也在周二晚间扫荡了数千个包含价值至少 400 万美元的 Solana 和 USDC 的加密货2025-11-03- 复制$connection=mysql_connect("localhost","albert","shhh"); mysql_select_db("winestore",$co2025-11-03
ALPHV勒索软件团伙,又名BlackCat,宣布对欧洲天然气管道和电力网络运营商Creos卢森堡公司的网络攻击负责。Creos的所有者Encevo是欧盟五国的能源供应商,它在7月25日宣布,他们在72025-11-03利用无peu盘装系统的教程及技巧(无peu盘装系统,实现简单高效,方便快捷安装)
摘要:在计算机安装系统时,通常需要使用peu盘来进行引导和安装。然而,对于一些没有peu盘的情况下,我们也可以通过一些技巧和方法来完成系统的安装,本文将详细介绍以无peu盘装系统的教程。...2025-11-03
事实证明,一些严重的网络犯罪往往是由于微小的缺陷而引发的。网络犯罪分子依靠企业安全防御中的这一缺陷(通常是员工本身)发起攻击。只需查看每年发生的网络钓鱼攻击的数量和规模就可以了解这一点。根据研究机构在2025-11-03

最新评论