SQL Server开窗函数之OVER子句、PARTITION BY 子句
开窗函数与聚合函数一样,都是对行的集合组进行聚合计算。它用于为行定义一个窗口(这里的窗口是指运算将要操作的行的集合),它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。
开窗函数的调用格式为:函数名(列) OVER(选项)。
第一大类:聚合开窗函数====》聚合函数(列) OVER (选项),这里的选项可以是PARTITION BY子句,表示根据PARTITION BY后面的字段分组。
第二大类:排序开窗函数====》排序函数(列) OVER (选项),这里的选项可以是ORDER BY子句,也可以是PARTITION BY子句+ORDER BY子句,但不可以只是PARTITION BY子句。
例1:
-- 通过id_parent排序后并得到一个序号列
select row_number() over(order by id_parent) as rownumber,* from COM_datadictionaryInfo where id_parent is not null
例2:
-- 通过id_parent分组后并得到每组的记录数
select count(*) over(partition by id_parent) as rownumber,* from COM_datadictionaryInfo where id_parent is not null
例3:
-- 通过id_parent分组、level排序后得到每组的序列号
select row_number() over(partition by id_parent order by level) as rownumber,* from COM_datadictionaryInfo where id_parent is not null
SQL Server开窗函数之OVER子句、PARTITION BY 子句的更多相关文章
- SQL ServerOVER 子句,over开窗函数,SQL SERVER 开窗函数
https://technet.microsoft.com/zh-cn/library/ms189461(v=sql.105).aspx http://www.cnblogs.com/85538649 ...
- 【转】SQL SERVER 开窗函数简介
在SQL SERVER 2005/2008支持两种排名开窗函数和聚集开窗函数. 以SQL SERVER中分面页为例,按时间顺序列出定单号. WITH OrderInfo AS ( SELECT ROW ...
- SQL SERVER开窗函数
作为一名开发人员来讲,我感觉在职场白混了好多年,可能是自己真的没有进取的精神吧,看了<程序员的SQL金典>这本电子书,真的让我学到了不少知识,真心喜欢这本电子书,书中讲解的内容比较好懂,也 ...
- Sql server 开窗函数over()的语法
用法一:与ROW_NUMBER()函数结合用,给结果进行排序编号,如图: 代码如下: SELECT ROW_NUMBER() over(order by RequiredDate) num ,* fr ...
- Sql Server 开窗函数Over()的使用
利用over(),将统计信息计算出来,然后直接筛选结果集 declare @t table( ProductID int, ProductName ), ProductType ), Price in ...
- SQL Server - 开窗函数
-- 开窗函数:在结果集的基础上进一步处理(聚合操作) SELECT * FROM dbo.Student S# Sname Sage Ssex ---------- ---------- ----- ...
- SQL Server 聚合函数算法优化技巧
Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值 ...
- 数据库开发基础-SQl Server 聚合函数、数学函数、字符串函数、时间日期函数
SQL 拥有很多可用于计数和计算的内建函数. 函数的语法 内建 SQL 函数的语法是: SELECT function(列) FROM 表 函数的类型 在 SQL 中,基本的函数类型和种类有若干种.函 ...
- sql over开窗函数,
sql over开窗函数, 1.使用over子句与rows_number()以及聚合函数进行使用,可以进行编号以及各种操作.而且利用over子句的分组效率比group by子句的效率更高. 2.在订单 ...
随机推荐
- 集训Day7
在做过的试题里ran的...发现之前做的题有些已经生疏了 bzoj3626 LCA 一棵树,每次询问在$[l,r]$区间内的每个节点$i$与$z$的最近公共祖先的深度之和 假的LCA 有一个很平凡的想 ...
- AtCoder Grand Contest 009 D:Uninity
题目传送门:https://agc009.contest.atcoder.jp/tasks/agc009_d 题目翻译 定义只有一个点的树权值为\(0\),若干棵(可以是\(0\)棵)权值为\(k\) ...
- Mysql 创建存储过程 更新表
DELIMITER // use protocoldb// drop procedure if exists sp_protocol_Update// create procedure sp_prot ...
- npm如何删除node_modules文件夹
npm install rimraf -g 先安装删除工具,然后使用删除命令 rimraf node_modules
- Unity3d笔记
当变量重命名后,已序列化保存的值会丢失,如果希望继续保留其数值,可使用FormerlySerializedAs,如下代码所示: [UnityEngine.Serialization.FormerlyS ...
- windows7无法启动Telnet服务,出现…
windows7无法启动Telnet服务,出现错误1068 2012 年 03 月 16 日 在[控制面板--程序--打开或关闭Windows功能]中开启telnet服务器和客户端后,在运行窗口中输入 ...
- 使用VSTO写的一个工作证打印软件
转行做HR近2年.最近公司要做工牌,工牌上要打印照片,姓名,工号和部门等信息.一共1000多人,如果手工排版手工打印的话,估计要死人. 于是coding的老毛病又犯了,想写个程序来打印工牌.还是拿最近 ...
- unity3d 自定义载入条/载入动画
在 Assets 下新建文件夹 WebGLTemplates , 在 WebGLTemplates 文件夹下新建文件夹 MyTemplate, 新建index. 在 PlayerSetting 中的 ...
- Automake使用说明
说明 从零开始编写automake工程非常复杂也没有必要,我们只要能看懂开源项目的automake即可,然后根据自己实际情况进行修改即可,下面给出两个比较好的参考项目,其中spice-gtk涵盖了使用 ...
- 学习SpringMVC时遇到的一些问题
1. 找不到mapping 比较弱智的问题,忘了在对应的类上加上 @Controller 注解了 2. Model中设置的值不显示 Eclipse 自动生成的web.xml 是 2.3版本的,网上说改 ...