SQL Server中row_number函数怎样用,哪些事项要注意
Admin 2022-06-29 群英技术资讯 327 次浏览
一.SQL Server Row_number函数简介
ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数。 行号以每个分区中第一行的行号开头。
以下是ROW_NUMBER()函数的语法实例:
select *,row_number() over(partition by column1 order by column2) as n from tablename
在上面语法中:
二.Row_number函数的具体用法
1.使用row_number()函数对结果集进行编号,如:
select ROW_NUMBER() over(order by recordid ) as 编号,* from [dbo].[Basal_Anormal_Solution]
运行结果:
2.对结果集按照指定列进行分组,并在组内按照指定列排序(如:把班级的总分按照小组进行分组显示,分组后在组内进行从高分到低分的排序)
select *,row_number() over(partition by createby order by actionOpeid) as n from [dbo].[Basal_Anormal_Solution]
运行结果:
3.对结果集按照指定列去重(如:对学生成绩按小组进行分组显示,结果集中只显示每组中一位最高分的学生)
select a.* from (select *,row_number() over(partition by createby order by actionOpeid) as n from [dbo].[Basal_Anormal_Solution])as a where a.n<2
运行结果:
注意:当我们求的是第一名成绩的时候,不能用row_number(),因为如果同班有两个并列第一,row_number()只返回一个结果。这个时候就要用到另外一个函数,rank()和dense_rank();rank()和dense_rank()区别:rank()是跳跃排序,有两个第二名时接下来就是第四名。这个时候我们通常会选择用rank()函数,灵活应用。
总结
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文主要介绍了SQL Server 2017无法连接到服务器的问题解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:一种方法:清空日志。1.打开查询分析器,输入命令DUMPTRANSACTION数据库名WITHNO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收
前言经过前几篇的分析,其实大体已经初窥到SQLServer统计信息的重要性了,所以本篇就要祭出这个神器了。该篇内容会很长,坐好板凳,瓜子零食之类…不废话,进正题技...
这篇文章主要为大家介绍了SQL Server 数据库基础编程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
本文主要介绍SQL中遇到多条相同内容只取一条的最简单实现方法,比较实用,希望能给大家做一个参考。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008