本文将为您介绍SQL中的分析函数,除了ORDER BY(按…排序)语句外,分析函数是一条查询被执行的操作,供您参考,希望对您学习SQL函数的使用能够有所帮助。
创新互联于2013年成立,先为波密等服务建站,波密等地企业,进行企业商务咨询服务。为波密企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
所有合并、WHERE、GROUP BY、HAVING语句都是分析函数处理之前完成的。
因此,分析函数只出现在选择目录或ORDER BY(按…排序)语句中。
使用Over语句的情况 :
A. 等级函数如, ROW_NUMBER, DENSE_RANK, RANK, NTILE 使用 OVER(ORDER BY) 语句
example.
- view sourceprint?01 USE AdventureWorks;
- 02 GO
- 03 SELECT c.FirstName, c.LastName
- 04 ,ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number'
- 05 ,s.SalesYTD, a.PostalCode
- 06 FROM Sales.SalesPerson s
- 07 INNER JOIN Person.Contact c
- 08 ON s.SalesPersonID = c.ContactID
- 09 INNER JOIN Person.Address a
- 10 ON a.AddressID = c.ContactID
- 11 WHERE TerritoryID IS NOT NULL
- 12 AND SalesYTD <> 0;
- 13 GO
ROW_NUMBER() 增添顺序序号,即时存在相同的也递增序号
RANK()相同的数据序号相同,接下来为跳号(是跳跃排序,有两个第二名时接下来就是第四名)
dense_rank()相同的数据序号相同,接下来顺序递增序号(是连续排序,有两个第二名时仍然跟着第三名)
ntile(N)将记录分为N组。
B. 聚合函数如, SUM,AVG,COUNT,MIN,MAX等使用OVER(PARTITION BY)语句
Example.
- 01 Copy Code
- 02 USE AdventureWorks;
- 03 GO
- 04 SELECT SalesOrderID, ProductID, OrderQty
- 05 ,SUM(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Total'
- 06 ,AVG(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Avg'
- 07 ,COUNT(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Count'
- 08 ,MIN(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Min'
- 09 ,MAX(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Max'
- 10 FROM Sales.SalesOrderDetail
- 11 WHERE SalesOrderID IN(43659,43664);
- 12 GO
【编辑推荐】
创建SQL函数的实例
SQL中一个很好用的日期格式化函数
SQL中返回计算表达式的函数
SQL中DATENAME函数的用法
SQL中循环语句的效果实例
分享标题:SQL中的分析函数
网站路径:http://www.shufengxianlan.com/qtweb/news29/280829.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联