sql语句关键字over的作用及用法

sql语句关键字over的作用及用法

ID:34726272

大小:112.68 KB

页数:4页

时间:2019-03-10

sql语句关键字over的作用及用法_第1页
sql语句关键字over的作用及用法_第2页
sql语句关键字over的作用及用法_第3页
sql语句关键字over的作用及用法_第4页
资源描述:

《sql语句关键字over的作用及用法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、sql语句关键字over的作用及用法  在应用具体的聚合函数、排名函数前对行集的分区和排序。over子句,用于支持窗口的计算,所以一般与排名开窗函数、聚合开窗函数一起使用。窗口是用户指定的一组行。开窗函数计算从窗口派生的结果集中各行的值。以前使用聚合函数必须分组,即便没有groupby子句,也是默认将表中所有的数据分成了1组,来聚合。通过使用over子句可以在不分组的情况下实现聚合运算,在查询结果集中既包含基础行的数据也包含聚合函数的值。(可以把over()子句理解成是“后台运行的数据”,只是为了让聚合函数或者是排名函数“

2、用一下”,并不影响实际显示的数据。在后台提供数据。)over子句的两种使用方式:1.over子句与排名开窗函数一起用,语法:over([partitionby列1]orderby列2)。必须有orderby子句2.over子句与聚合开窗函数一起用,语法:over([partitionby列1])不能使用orderby子句了。【先演示这个】注:当over()子句与聚合函数一起使用时,也可以直接写count(*)over()不在over()子句中进行任何分区,表示把整个表分为一个区。第1种使用方式over不能单独使用,要和分析

3、函数:rank(),dense_rank(),row_number()等一起使用。其参数:over(partitionbycolumnname1orderbycolumnname2)含义:按columname1指定的字段的值,对查询后的结果集进行分组再组内排序,形成结果集中的一个新列。若SQL语句最后有orderby,则把最终的结果集再整体排序。例如:employees表中,有两个部门的记录:department_id=10和20SQL语句“selectdepartment_id,salary,rank()over(par

4、titionbydepartment_idorderbysalary)fromEmployees”,就是指在部门10中进行薪水的排名,在部门20中进行薪水排名。如果是没有partitionby部分,则是在整个公司内进行排名。第2种使用方式下面的示例对于查询返回的所有行,将 OVER 子句与聚合函数一起使用。 在这个示例中,使用 OVER 子句与使用子查询相比,可以更高效地派生聚合值。USEAdventureWorks2012; GO SELECTSalesOrderID,ProductID,OrderQty ,SUM(Or

5、derQty)OVER(PARTITIONBYSalesOrderID)ASTotal ,AVG(OrderQty)OVER(PARTITIONBYSalesOrderID)AS"Avg" ,COUNT(OrderQty)OVER(PARTITIONBYSalesOrderID)AS"Count" ,MIN(OrderQty)OVER(PARTITIONBYSalesOrderID)AS"Min" ,MAX(OrderQty)OVER(PARTITIONBYSalesOrderID)AS"Max" FROMSales.Sa

6、lesOrderDetail WHERESalesOrderIDIN(43659,43664); GO下面是结果集:SalesOrderIDProductIDOrderQtyTotalAvgCountMinMax ---------------------------------------------------------------------------- 4365977612621216 4365977732621216 4365977812621216 4365977112621216 436597721262

7、1216 4365977322621216 4365977412621216 4365971432621216 4365971612621216 4365970962621216 4365971222621216 4365971142621216 436647721141814 436647754141814 436647141141814 436647161141814 436647772141814 436647713141814 436647731141814 436647781141814

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。