Sql server 开窗函数over()的语法 您所在的位置:网站首页 over的所有用法 Sql server 开窗函数over()的语法

Sql server 开窗函数over()的语法

2023-04-05 05:19| 来源: 网络整理| 查看: 265

本文共 1075 字,大约阅读时间需要 3 分钟。

 

用法一:与ROW_NUMBER()函数结合用,给结果进行排序编号,如图:

 

代码如下:

SELECT ROW_NUMBER() over(order by RequiredDate) num   ,* from  [Northwind].[dbo].[Orders] View Code

 

用法二:跟聚合函数一起使用,利用over子句的分组效率比group by子句的效率更高。

在Northwind数据库的订单表Orders中查询"订单id","客户id","运费","所有订单的总数",“每一个客户的总运费”,“所有客户的总运费”,“每一个客户的平均运费”,“所有客户的平均运费”,"每一个客户所有订单中最大的运费","所有客户中最大运费","每一个客户所有订单中最小的运费","所有客户中最小运费",如下图:

 

代码如下:

SELECT  [OrderID] --订单id  ,[CustomerID] --客户id  ,[Freight] --运费  ,COUNT(OrderID) over() as totalNum --一所有订单的总数  ,SUM(Freight) over(partition by customerid) as cusTotalFreight --每一个客户的总运费  ,SUM(Freight) over() as totalFreight --所有客户的总运费  ,AVG(Freight) over(partition by customerid) as cusAvgFreight --每一个客户的平均运费  ,AVG(Freight) over() as avgFreight --所有客户的平均运费  ,MAX(Freight) over(partition by customerid) as cusMaxFreight --每一个客户所有订单中最大的运费  ,MAX(Freight) over() as maxFreight --所有客户中最大运费  ,MIN(Freight) over(partition by customerid) as cusMinFreight --每一个客户所有订单中最小的运费  ,MIN(Freight) over() as minFreight --所有客户中最小运费  FROM [Northwind].[dbo].[Orders] View Code

 

总结:运用开窗函数over()再结合聚合函数,可以使表格向右扩张,并进行一些数据的统计

转载地址:https://www.cnblogs.com/527289276qq/p/5288076.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有