下载此文档

oracle分析函数over及开窗函数.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
oracle的分析函数over及开窗函数oracle的分析函数over及开窗函数一:,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。下面通过几个例子来说明其应用。1:统计某商店的营业额。datesale1202**********规则:按天统计:每天都统计前面几天的总额得到的结果:DATESALESUM-------------------12020--1天21535--1天,2天31449--1天,2天,:统计各班成绩第一名的同学信息NAMECLASSS--------------------------------fda180ffd178dss195cfe274gds292gf399ddd399adf345asdf3553dd378通过:--select*from(selectname,class,s,rank()over(partitionbyclassorderbysdesc)mmfromt2)wheremm=1--得到结果:NAMECLASSSMM------------------------------------------------------dss1951gds2921gf3991ddd3991注意:,不能用row_number(),因为如果同班有两个并列第一,row_number()()和dense_rank()的区别是:--rank()是跳跃排序,有两个第二名时接下来就是第四名--dense_rank()l是连续排序,(并显示信息)ABC--------------------------ma2na3ma2nb2nb1xb3xb2xb4hb3selecta,c,sum(c)over(partitionbya)fromt2得到结果:ABCSUM(C)OVER(PARTITIONBYA)-----------------------------------hb33ma24ma24na36nb26nb16xb39xb29xb49如果用sum,groupby则只能得到ASUM(C)------------------------h3m4n6x9无法得到B列值,,,,,select*fromtest数据:ABC111122133225346---将B栏位值相同的对应的C栏位值加总selecta,b,c,SUM(C)OVER(PARTITIONBYB)_SUM11111227225713333466---如果不需要已某个栏位的值分割,那就要用nulleg:就是将C的栏位值summary放在每行后面selecta,b,c,SUM(C)OVER(PARTITIONBYnull)_SUM1111712217133172251734617求个人工资占部门工资的百分比SQL>select*fromsalary;NAMEDEPTSAL-------------------a102000b103000c105000d204000SQL>selectname,dept,sal,sal*100/sum(sal)ov

oracle分析函数over及开窗函数 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xiarencrh
  • 文件大小21 KB
  • 时间2020-08-02
最近更新