sqlservercount函数的用法(SQL Server中row_number函数的常见用法示例详解)
类别:数据库 浏览量:2959
时间:2021-10-06 01:54:30 sqlservercount函数的用法
SQL Server中row_number函数的常见用法示例详解一.SQL Server Row_number函数简介
ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数。 行号以每个分区中第一行的行号开头。
以下是ROW_NUMBER()函数的语法实例:
select *,row_number() over(partition by column1 order by column2) as n from tablename
在上面语法中:
- PARTITION BY子句将结果集划分为分区。 ROW_NUMBER()函数分别应用于每个分区,并重新初始化每个分区的行号。
- PARTITION BY子句是可选的。如果未指定,ROW_NUMBER()函数会将整个结果集视为单个分区。
- ORDER BY子句定义结果集的每个分区中的行的逻辑顺序。 ORDER BY子句是必需的,因为ROW_NUMBER()函数对顺序敏感。
二.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()函数,灵活应用。
总结
到此这篇关于SQL Server中row_number函数常见用法的文章就介绍到这了,更多相关SQL Server row_number函数用法内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- sqlserver新建表参数错误(Sql Server中判断表、列不存在则创建的方法)
- sqlserver查看创建的索引(浅述SQL Server的聚焦强制索引查询条件和Columnstore Index)
- sqlserver字符串格式化(SQL server中字符串逗号分隔函数分享)
- SqlServer2016模糊匹配的三种方式及效率问题简析(SqlServer2016模糊匹配的三种方式及效率问题简析)
- 如何使用sqlserver建立数据表(SqlServer编写数据库表的操作方式建库、建表、修改语句)
- sqlserver怎么手动添加数据库表(SQL Server 数据库调整表中列的顺序操作方法及遇到问题)
- 修改sqlserver数据库名称步骤(SQL server数据库创建代码 filegroup文件组修改的示例代码)
- sqlserverlog原理(sql server中错误日志errorlog的深入讲解)
- sql server 进阶(SqlServer AS的用法)
- sqlserver2016使用教程(SQL Server 2016 Alwayson新增功能图文详解)
- sqlserver语句显示表字段(SQL Server查找表名或列名中包含空格的表和列实例代码)
- Windows2012配置SQLServer2014AlwaysOn的图解(Windows2012配置SQLServer2014AlwaysOn的图解)
- sqlserver中的存盘按钮在哪(SQL Server 2016里的sys.dm_exec_input_buffer的问题)
- sqlserver 锁表原因(SQL Server学习笔记之事务、锁定、阻塞、死锁用法详解)
- sql死锁进程保护(SqlServer查询和Kill进程死锁的语句)
- sqlserver2012卸载工具(Windows下SQL Serever 2012彻底卸载删除教程)
- 战 疫 时刻 致敬每一位石化大学的 守护者(战疫时刻)
- 老弄堂里的市井味道(老弄堂里的市井味道)
- 小米音乐可绑定QQ音乐, QQ音乐 真的会消失在小米的设备上吗(小米音乐可绑定QQ音乐)
- 小米Watch S1评测 或许能成为小米冲击高端可穿戴设备的里程碑(小米WatchS1评测或许能成为小米冲击高端可穿戴设备的里程碑)
- 手机QQ与小米路由器在一起 明天揭晓,敬请期待(手机QQ与小米路由器在一起)
- 小米音乐与 QQ 音乐合作,便捷迁移会员(小米音乐与QQ音乐合作)
热门推荐
- 微信小程序ui聊天窗口(微信小程序实现简单聊天室)
- php符串使用教程(php使用scandir函数扫描指定目录下所有文件示例)
- 云服务器好在哪你知道吗(美国云服务器怎么选择?美国云服务器选择技巧分享)
- php哪个函数具有字符串截取功能(php字符串截取函数mb_substr用法实例分析)
- 异步调用中HttpContext.Current为null解决方法
- exists在sql中用法(详解sql中exists和in的语法与区别)
- python初学者必备函数(Python小白必备的8个最常用的内置函数推荐)
- tomcatweb 管理(Tomcat源码解析之Web请求与处理)
- SQL Server数据库备份的几个建议
- mysql中innodb的特性(Mysql InnoDB的锁定机制实例详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9