(一) 窗口的定义:指为用户指定的一组行,也称着"分区"。如下图所示的窗口分区。每一个班级看作是一个数据窗口,一共有三个窗口

(二)窗口计算的相关方法

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》 第九章

2》深入浅出谈开窗函数

3》OVER()开窗函数的使用

4》sql server如何利用开窗函数over()进行分组统计

最新文章

  1. 4 多表代替密码之Hill 密码 2实现
  2. iOS 读取相册二维码,兼容ios7(使用CIDetector 和 ZXingObjC)
  3. Android学习二_八:Animation的使用(一) (转)
  4. Is Anchor magento
  5. Rectangle Intersection Test (with C#)
  6. could not open XXX permission denied
  7. Spring + JDK Timer Scheduler Example--reference
  8. linux下sed命令笔记
  9. Excel01-不同的单元格输入同一数据
  10. .net mvc下的Areas和小写Url
  11. Entity Framework 学习初级篇3-- LINQ TO Entities
  12. 数据处理包dplyr的函数
  13. ●BZOJ 1767 [Ceoi2009]harbingers
  14. PKU 3468 A Simple Problem with Integers
  15. 导航栏动态添加act属性
  16. The requested URL /xxxx.html was not found on this server
  17. REACT map dictionary
  18. SpringBoot集成Jasypt安全框架,配置文件内容加密
  19. Oracle数据库备份实验笔记[不完整,内容乱]
  20. jbosscache

热门文章

  1. Debugger 怎么用
  2. 【BZOJ-1010】玩具装箱toy DP + 斜率优化
  3. Python之禅+八荣八耻
  4. [NOIP2015] 提高组 洛谷P2668 斗地主
  5. 解析window.open链接的参数
  6. Linux 命令之 Navicat 连接 Linux 下的Mysql数据库
  7. plist文件的使用
  8. BZOJ1798: [Ahoi2009]Seq 维护序列seq
  9. HTML meta viewport属性详细说明
  10. electron package can not find module xml2json