SQL Server 2012 开窗函数
废话不多说了,直接给大家贴代码了,具体代码如下所示:
-- 开窗函数:在结果集的基础上进一步处理(聚合操作) -- Over函数,添加一个字段显示最大年龄 SELECT * , MAX(StuAge) OVER ( ) MaxStuAge FROM dbo.Student; -- Over函数,添加一个字段显示总人数 SELECT * , COUNT(StuID) OVER ( ) StuCount FROM dbo.Student; -- Partition By 分组统计数量 -- 根据性别分组后,统计 SELECT COUNT(*) OVER ( PARTITION BY StuSex ) , * FROM dbo.Student; -- 根据班级分组后,统计、排序 SELECT COUNT(*) OVER ( PARTITION BY Class ORDER BY Height) , * FROM dbo.Student; -- Over函数,添加一个字段显示平均身高 SELECT * , AVG(Height) OVER ( ) AgeHeight FROM dbo.Student; --Row_Rumber() SELECT ROW_NUMBER() OVER ( ORDER BY StuID DESC ) RowNumber , * FROM dbo.Student --Row_Rumber() 实现分页效果 ; WITH T AS ( SELECT ROW_NUMBER() OVER ( ORDER BY StuID DESC ) RowNumber , * FROM dbo.Student ) SELECT * FROM T WHERE T.RowNumber BETWEEN 1 AND 3; --Rank() 排名函数,名次相同,跳过 SELECT RANK() OVER ( ORDER BY Height ) , * FROM dbo.Student; --DENSE_Rank() 排名函数,名次相同不跳过 SELECT DENSE_RANK() OVER ( ORDER BY Height ) , * FROM dbo.Student; -- NTILE()函数,参数:记录总数/划分区域 = 每个区域数组,把记录序号放进数组 (平均分组) SELECT NTILE(3) OVER ( ORDER BY StuSex ) , * FROM dbo.Student;
以上所述是小编给大家介绍的SQL Server 2012 开窗函数,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
相关推荐
-
sql server如何利用开窗函数over()进行分组统计
这是一道常见的面试题,在实际项目中经常会用到. 需求:求出以产品类别为分组,各个分组里价格最高的产品信息. 实现过程如下: declare @t table( ProductID int, ProductName varchar(20), ProductType varchar(20), Price int) --测试数据 insert @t select 1,'name1','P1',3 union all select 2,'name2','P1',5 union all select 3,
-
SQL中的开窗函数详解可代替聚合函数使用
在没学习开窗函数之前,我们都知道,用了分组之后,查询字段就只能是分组字段和聚合的字段,这带来了极大的不方便,有时我们查询时需要分组,又需要查询不分组的字段,每次都要又到子查询,这样显得sql语句复杂难懂,给维护代码的人带来很大的痛苦,然而开窗函数出现了,曙光也来临了.如果要想更具体了解开窗函数,请看书<程序员的SQL金典>,开窗函数在mysql不能使用. 开窗函数与聚合函数一样,都是对行的集合组进行聚合计算.它用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不
-
Sql Server 开窗函数Over()的使用实例详解
利用over(),将统计信息计算出来,然后直接筛选结果集 declare @t table( ProductID int, ProductName varchar(20), ProductType varchar(20), Price int) insert @t select 1,'name1','P1',3 union all select 2,'name2','P1',5 union all select 3,'name3','P2',4 union all select 4,'name4
-
Oracle数据库中SQL开窗函数的使用
开窗函数:在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成.为了解决这些问题,在 2003 年 ISO SQL 标准加入了开窗函数,开窗函数的使用使得这些经典的难题可以被轻松的解决.目前在 MSSQLServer.Oracle.DB2 等主流数据库中都提供了对开窗函数的支持,不过非常遗憾的是 MYSQL 暂时还未对开窗函数给予支持. 开窗函数简介:与聚合函数一样,开窗函数也是对行集组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值
-
SQL Server 2012 开窗函数
废话不多说了,直接给大家贴代码了,具体代码如下所示: -- 开窗函数:在结果集的基础上进一步处理(聚合操作) -- Over函数,添加一个字段显示最大年龄 SELECT * , MAX(StuAge) OVER ( ) MaxStuAge FROM dbo.Student; -- Over函数,添加一个字段显示总人数 SELECT * , COUNT(StuID) OVER ( ) StuCount FROM dbo.Student; -- Partition By 分组统计数量 -- 根据性别
-
SQL Server 2012 开窗函数
废话不多说了,直接给大家贴代码了,具体代码如下所示: -- 开窗函数:在结果集的基础上进一步处理(聚合操作) -- Over函数,添加一个字段显示最大年龄 SELECT * , MAX(StuAge) OVER ( ) MaxStuAge FROM dbo.Student; -- Over函数,添加一个字段显示总人数 SELECT * , COUNT(StuID) OVER ( ) StuCount FROM dbo.Student; -- Partition By 分组统计数量 -- 根据性别
-
SQL SERVER 2012新增函数之逻辑函数IIF
前言 SQL SERVER 2012中新增了IIF函数,这个函数在VB或是ACCESS中是存在的.感兴趣的朋友们下面来一起学习学习吧. 格式如下 iif(布尔表达式,value1,value2) 也就是说如果表达式成立,那么就返回value1,如果不成立,就返回value2. 示例如下 例如: select iif(30>45,'对','错') as 结果 /* 结果 ---- 错 */ select iif(null=null,'对','错') as 结果 /* 结果 ---- 错 */ se
-
SQL SERVER 2012新增函数之逻辑函数CHOOSE详解
SQL SERVER 2012中新增了CHOOSE,该函数可以从值列表返回指定索引处的项. 例如: select CHOOSE(3,'A','B','C','D') as R1 /* R1 ---- C */ CHOOSE并不能这么用,例如有个字符串'A,B,C,D',我们并不能用choose得到其中的某个值: select choose(2,'A,B,C,D') /* null */ CHOOSE的主要功能和CASE WHEN类似,例如数据库中有字段Sex:1表示男,2表示女. if obje
-
Sql Server 2012 转换函数的比较(Cast、Convert和Parse)
语法结构: 1. Cast 语法结构:CAST ( expression AS data_type [ ( length ) ] ) 2. Convert 语法结构:CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) 3. Parse 语法结构:PARSE ( string_value AS data_type [ USING culture ] ) 其中,Parse 为 Sql Server 的新特性 expression
-
SQL SERVER 2012新增函数之字符串函数FORMAT详解
前言 本文主要介绍的是使用 FORMAT函数将日期/时间和数字值格式化为识别区域设置的字符串.下面话不多说,来看详细的介绍吧. 格式如下: format(value,format,culture) 第一个参数是要格式化的值,第二个是格式,第三个是区域,比如是中国,还是美国,还是大不列颠等等. FORMAT 依赖于 .NET Framework公共语言运行时 (CLR) 的存在. declare @date datetime = '2014-01-01' select FORMAT( @date,
-
Sql Server 2008R2升级Sql Server 2012图文教程
环境: Windows server 2008 r2 Standard +SqlServer2008R2 内网环境需要升级为SQL server 2012 升级安装时提示版本不支持 网上查询相关问题, 必须是SQL server2008 r2 sp1以上及需要安装Sp2补丁包才能升级为SQL server 2012 1)下载地址:微软官网 https://www.microsoft.com/zh-CN/download/details.aspx?id=30437 2)选择你对应的安装SQL se
-
SQL Server 2012 安装图解教程(附sql2012下载地址)
在安装微软最新数据库SQL Server 2012之前,编者先确定一下安装环境:Windonws 7 SP1,32位操作系统.CPU是2.1GHz赛扬双核T3500,内存2.93GB. sql2012下载 http://www.jb51.net/softs/79861.html 安装SQL Server 2012的软硬件环境参数 根据微软的下载提示,32位的Windows 7操作系统,只需下载列表最下面的CHSx86SQLFULL_x86_CHS_Core.box. CHSx86SQLFULL_
-
SQL Server 2012 身份验证(Authentication)
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间. 身份验证是验证主体(需要访问SQL Server数据库的用户或进程,是声称是的人或物)的过程.主体需要唯一的身份,这样的话SQL Server可以决定主体有哪个许可.在提供安全访问数据库对象中,正确的身份验证是必须的
-
Sql Server中Substring函数的用法实例解析
SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'
随机推荐
- Django Admin实现上传图片校验功能
- JavaScript实现动态增删表格的方法
- ES6新特性:使用export和import实现模块化详解
- ASP.NET Session对象保持会话使用说明
- Phpbean路由转发的php代码
- GO语言文件的创建与打开实例分析
- 使用C++中string实现任意长度的正小数、整数之间加减法方法实例
- js自定义事件及事件交互原理概述(二)
- 很棒的js Tab选项卡切换效果
- 基于C#中XmlReader读取Xml的深入分析
- jQuery实现弹幕效果
- 自动化测试读写64位操作系统的注册表
- flex SystemManger监控用户是否和程序打交道
- Android网络通信的实现方式
- python中pycurl库的用法实例
- PHP获取POST数据的几种方法汇总
- c#判断网络连接状态的示例分享
- JavaScript实现AOP详解(面向切面编程,装饰者模式)
- JS随机数产生代码分享
- 使用vue-cli编写vue插件的方法