SQL Server2008窗口计算
(一) 窗口的定义:指为用户指定的一组行,也称着"分区"。如下图所示的窗口分区。每一个班级看作是一个数据窗口,一共有三个窗口
(二)窗口计算的相关方法
1)over()用法 格式:函数名(列) over(选项)
OVER关键字表示把函数当成开窗函数而不是聚合函数。SQL标准允许将所有聚合函数用做开窗函数,使用OVER关键字来区分这两种用法。
(三)案例分析
(1) 查询工资小于5000元的员工信息(城市以及年龄),并且在每行中都显示所有工资小于5000元的员工个数
CREATE TABLE T_Person
(
FName VARCHAR(20),
FCity VARCHAR(20),
FAge INT,
FSalary INT
) INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Tom','BeiJing',20,3000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Tim','ChengDu',21,4000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Jim','BeiJing',22,3500);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Lily','London',21,2000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('John','NewYork',22,1000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('YaoMing','BeiJing',20,3000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Swing','London',22,2000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Guo','NewYork',20,2800);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('YuQian','BeiJing',24,8000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Ketty','London',25,8500);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Kitty','ChengDu',25,3000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Merry','BeiJing',23,3500);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Smith','ChengDu',30,3000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Bill','BeiJing',25,2000);
INSERT INTO T_Person(FName,FCity,FAge,FSalary) VALUES ('Jerry','NewYork',24,3300);
(2)对员工进行年龄分组且统计不同年龄员工人员总数
select *,count(FAge) over(partition by FAge) as Nums from T_Person order by FAge
参考资料:
1》张洪举 《锋利的SQL》 第九章
4》sql server如何利用开窗函数over()进行分组统计
SQL Server2008窗口计算的更多相关文章
- 介绍 .Net工具Code Snippet 与 Sql Server2008工具SSMS Tools Pack
不久前,某某在微软写了一个很酷的工具:Visual Stuido2008可视化代码片断工具,这个工具可以在http://www.codeplex.com/SnippetDesigner上免费下载,用它 ...
- SQL Server窗口框架——ROWS、RANGE
说到窗口框架就不得不提起开窗函数. 开窗函数支持分区.排序和框架三种元素,其语法格式如下: OVER ( [ <PARTITION BY clause> ] [ <ORDER BY ...
- 大家一起来学 NHibernate+NUnit (VS2012+SQL Server2008)
大家一起来学 NHibernate+NUnit (VS2012+SQL Server2008) 分类: C#2013-08-10 18:47 1589人阅读 评论(5) 收藏 举报 NHibernat ...
- 【Tech】SQL Server2008使用笔记
1.64位win7系统报错“未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 ”. 解决方法:从这个网址下载和安装一个驱动http://www.microsoft.com/zh- ...
- Installer - win10安装及卸载SQL Server2008数据库
一.数据库安装环境 操作系统:win10 SQL server:SQL server 2008 R2 二.全新数据库安装 1.安装扩展文件 双击安装文件,弹出如下窗体: ...
- sql server2008 装上后,总是出现machine.config line136,或者 出现 配置错误 无法识别的配置节 system.serviceModel 。
怀疑问题是vs 和 sql server2008安装冲突的问题造成, 有一个这样的说法: 用win8.1的64位 的系统,如果先装vs2010,再装sql server 2008 r2,根本就不行,一 ...
- Hive实战—时间滑动窗口计算
关注公众号:大数据技术派,回复: 资料,领取1024G资料. 目录 时间滑动计算 外部调用实现时间循环 自关联实现滑动时间窗口 扩展基于自然周的的滚动时间窗口计算 总结 时间滑动计算 今天遇到一个需求 ...
- 记录SQL Server2008日志文件损坏的恢复过程
记录SQL Server2008日志文件损坏的恢复过程: 环境: 系 统:Windows Server2003 数据库:SQL Server2008 故障原因: 通过mstsc链接同一服务器时,用户界 ...
- SQL Server2008附加数据库之后显示为只读时解决方法
啰嗦的话就不多说了,直入主题吧! 方案一: 碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定. 方案二: 使用sa登录SQL Server2008附加数据库 ...
随机推荐
- IOS URL 编码和解码
1.url编码 ios中http请求遇到汉字的时候,需要转化成UTF-8,用到的方法是: NSString * encodingString = [urlString stringByAddingPe ...
- OPRNGL总结(一)OPENGL的理论原理
1.计算机图形学的发展——走向3D 1.纸带 2.荧光屏,打印出*等等 3.阴极射线管 4实时3D 2.实现“3D”的原理 1.其实现在看到的3D都是伪3D,并不是真正的三维图像,真正的三维图像 真3 ...
- 56. Android中进程优先级小结
作为一个多任务的系统,Android 系统当然能够尽可能长的保留一个应用进程,但是由于新的或者更重要的进程需要更多的内存,系统不得不逐渐终结老的进程来获取内存.为了声明哪些进程需要保留,哪些需要kil ...
- 【bzoj1178】 Apio2009—CONVENTION会议中心
http://www.lydsy.com/JudgeOnline/problem.php?id=1178 (题目链接) 题意 给出n个区间,问在区间两两不相交的情况下最多能选出多少区间,并输出字典序最 ...
- 【codevs1170】 双栈排序
http://codevs.cn/problem/1170/ (题目链接) 题意 给出一个初始序列,判断能否通过两个栈的入栈和出栈操作构造出一个有序序列.若可以,输出字典序最小的方案. Solutio ...
- 如何查询Oracle中所有用户信息
1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限( ...
- ubuntu常见错误--could not get lock /var/lib/dpkg/lock -open
最近研究ubuntu,用apt-get命令安装一些软件包时,总报错:E:could not get lock /var/lib/dpkg/lock -open等 出现这个问题的原因可能是有另外一个程序 ...
- Parallel Computing–Cannon算法 (MPI 实现)
原理不解释,直接上代码 代码中被注释的源程序可用于打印中间结果,检查运算是否正确. #include "mpi.h" #include <math.h> #includ ...
- 捉襟见肘之message sent to deallocated instance 0x16f62a70
出现的问题(真机ios8到ios9测试没有问题,真机ios7.1出现问题): -- :::60b] *** -[ChatViewController scrollViewDidScroll:]: me ...
- 2 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之MySql的搭建
preface 上一节我们讲了DRBD的原理,以及如何部署DRBD,那么现在在上一节的基础上部署Mysql 安装并启动Mysql 为了方便,我一般采用yum安装Mysql.命令如下: 在172.16. ...