SQL 基本介绍-开窗函数(免费).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL 基本介绍-开窗函数(免费).txt45想洗澡吗?不要到外面等待下雨;想成功吗?不要空等机遇的到来。摘下的一瓣花能美丽多久?一时的放纵又能快乐多久?有志者要为一生的目标孜孜以求。少年自有少年狂,藐昆仑,笑吕梁;磨剑数年,今将试锋芒。自命不凡不可取,妄自菲薄更不宜。ORACLE开窗函数(2010-04-26 13:31:22)转载标签:杂谈 分类:ORACLE 基本介绍: Analytic_clause的语法如下: [ query_partition_clause ] [ order_by_clause [ windowing_clause ] ] 这里: query_partition_clause是查询分组子句; order_by_clause是分组排序子句; windowing_clause是窗口范围子句。 分析函数在查询结果集确定之后才开始进行计算,Analytic_clause就是用来定义函数怎样对查询结果集进行分组计算的。 根据Oracle对查询和分析函数的处理方法可知,在select和order by子句中都可以使用分析函数。 query_partition_by、order_by_clause和windowing_clause三个子句是可选的,将三个子句分别简记为p,o,w。 合法的组合方式有如下6种: 1). Pow (query_partition_clause order_by_clause windowing_clause) 分组,排序,定义窗口范围 2). Po (query_partition_clause order_by_clause) 分组,排序,窗口默认为range between unbounded preceding and current row 3). P (query_partition_clause) 分组,不排序,没有窗口 4). Ow (order_by_clause windowing_clause) 分组为整个查询结果集,排序,定义窗口范围 5). O (order_by_clause) 分组为整个查询结果集,排序,窗口默认为range between unbounded preceding and current row 6). Null () 分组为整个查询结果集,不排序,没有窗口 因为只有存在order_by_clause,才能有windowing_clause,故不存在如下两种形式的组合: pw(query_partition_clause windowing_clause) w(windowing_clause) 总结: 1). 对于是否存在order_by_clause,分析函数可以分为两类,含有order_by_clause的一般称为windowing function,不含的称为reporting function。 2). Windowing function,对查询结果集进行分组,排序,根据窗口范围计算分组中每一行的函数结果。 3). Reporting function,对查询结果集进行分组,不排序,窗口范围为整个分组,在每一个分组内,计算整个分组的函数值,再将函数值分别赋给分组内的每一行。 一、开窗函数 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下: 1、over(order by salary) 按照salary排序进行累计,order by是个默认的开窗函数。 SELECT EMPLOYEE_ID, SALARY, MANAGER_ID, DEPARTMENT_ID, SUM(SALARY) OVER (ORDER BY SALARY) DD FROM INFA_TEST.EMPLOYEES EMP ORDER BY SALARY 功能:按salary升序排序,统计小于等于当前salary的salary总和。 返回结果: EMPLOYEE_ID SALARY MANAGER_ID DEPARTMENT_ID DD 132 2100 121 50 2100 128 2200 120 50 6500 136 2200 122 50 6500

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档