SQLSever数据库开窗函数Word格式.docx
《SQLSever数据库开窗函数Word格式.docx》由会员分享,可在线阅读,更多相关《SQLSever数据库开窗函数Word格式.docx(3页珍藏版)》请在冰豆网上搜索。
![SQLSever数据库开窗函数Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/25/076d7c8c-0e27-4c22-8431-fa1c1ecd09b8/076d7c8c-0e27-4c22-8431-fa1c1ecd09b81.gif)
这样就会导致有些查询语句只能通过编写复杂的子查询或者存储过程来完成。
于是2003年ISOSQL标准加入了开窗函数(WindowFunction),与聚合函数一样,开窗函数也是对组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值,开窗函数可以为每组返回多个值并在每一行的最后一列添加聚合函数的结果,使用起来非常方便。
这类函数在SQLSever里被称为开窗函数,在Oracle中则被称为分析函数,而在DB2中被称为OLAP(On-LineAnalyticalProcessing)函数。
开窗函数基本语法:
<
开窗函数>
over([partitionby<
用于分组的字段>
]
orderby<
用于排序的字段>
)
重点注意:
PARTITIONBY用于将结果集进行分组,ODERBY指定按哪个字段进行排序;
在同一个SELECT语句中,可以同时使用多个开窗函数,而且这些开窗函数并不会相互干扰。
SQLSever的开窗函数(WindowFunction)分为4大类:
聚合开窗函数
排名开窗函数
定位开窗函数
分布开窗函数
新建临时测试数据表Temp_Test
CREATETABLETemp_Test(UserNameVARCHAR(20),CityVARCHAR(20),AgeINT,SalaryINT)
INSERTINTOTemp_Test(UserName,City,Age,Salary)VALUES('
Tom'
'
BeiJing'
20,3000);
Tim'
ChengDu'
21,4000);
Jim'
22,3500);
Lily'
London'
21,2000);
John'
NewYork'
22,1000);
YaoMing'
Swing'
22,2000);
Guo'
20,2800);
YuQian'
24,8000);
Ketty'
25,8500);
Kitty'
25,3000);
Merry'
23,3500);
Smith'
30,3000);
Bill'
25,2000);
Jerry'
24,3300);