首页 > 代码库 > 随笔003:开窗函数
随笔003:开窗函数
当需提取数据的汇总数或者排序数,但是又要显示非分组字段的字段时,可用统计函数\排序函数+OVER()【即开窗函数】
例如:获取客户的所有订单同时显示客户的统计总订单数,不用开窗函数则脚本如下:
SELECT [SalesOrderID] ,[OrderDate] ,[CustomerID] ,[SalesPersonID] ,[SubTotal] ,[TaxAmt] ,(SELECT COUNT(*)FROM [AdventureWorks2008R2].[Sales].[SalesOrderHeader] B WHERE A.CustomerID = B.CustomerID) 客户总单数 FROM [AdventureWorks2008R2].[Sales].[SalesOrderHeader] A order by CustomerID,SalesOrderID
若用开窗函数则脚本如下:
SELECT [SalesOrderID] ,[OrderDate] ,[CustomerID] ,[SalesPersonID] ,[SubTotal] ,[TaxAmt] , COUNT(*) over(partition by customerId) 客户总单数 FROM [AdventureWorks2008R2].[Sales].[SalesOrderHeader] A order by CustomerID,SalesOrderID
两者结果
用开窗函数脚本相对要简单些,也容易看明白
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。