- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle20080821--函数
Oracle分析函数over及开窗函数
作者: kezong, 出处:blog, 责任编辑: 王晓晨,
2008-07-30 07:10
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是,对于每个组返回多行,而聚合函数对于每个组只返回一行。
分析函数over 及开窗函数
一:分析函数over
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是
对于每个组返回多行,而聚合函数对于每个组只返回一行。
下面通过几个例子来说明其应用。
1:统计某商店的营业额。
date??? sale
1???????? ?20
2??????????15
3??????????14
4????????? 18
5????????? ?30
规则:按天统计:每天都统计前面几天的总额
得到的结果:
DATE?? SALE?? SUM
----- -------- ------
1??????? 20 20??? ?--1天
2????????15 35???? --1天+2天
3?????? ?14 49???? --1天+2天+3天
4??????? 18??????????? 67 .
5????????30??????????? 97 .
2:统计各班成绩第一名的同学信息
NAME? ?CLASS??? S
----- ----- ----------------------
fda??????? 1????????? 80
ffd?????????1????????? 78
dss??????? 1???????? ?95
cfe??????? ?2??????????74
gds??????? 2??????????92
gf???????? ? 3????????? 99
ddd????????3????????? 99
adf?????????3????????? 45
asdf???????3????????? 55
3dd????????3????????? 78
通过:
-- select?*?from ( select?name,class,s,rank()over(partition?by?class?order?by?s?desc)?mm?from?t2 ) where?mm=1 -- 得到结果:
NAME? CLASS? S? MM
----- ----- ---------------------- ----------------------
dss???? 1??????? 95?? 1
gds???? 2????????92?? 1
gf??????? 3????????99?? 1
ddd???? 3????????99???1
注意:
1.在求第一名成绩的时候,不能用row_number(),因为如果同班有两个并列第一,row_number()只返回一个结果
2.rank()和dense_rank()的区别是:
--rank()是跳跃排序,有两个第二名时接下来就是第四名
--dense_rank()l是连续排序,有两个第二名时仍然跟着第三名
3.分类统计 (并显示信息)
A?? B?? C
-- -- ----------------------
m? ?a??2
n?? a??3
m? a? ?2
n? ?b? ?2
n?? b?? 1
x? ?b?? 3
x?? b?? 2
x? ?b?? 4
h? ?b?? 3
select?a,c,sum(c)over(partition?by?a)?from?t2 得到结果:
A B C??? SUM(C)OVER(PARTITIONBYA)
-- -- ------- ------------------------
h b 3???? 3
m a 2??? 4
m a 2??? 4
n a 3???? 6
n b 2???? 6
n b 1??? ?6
x b 3?????9
x b 2???? 9
x b 4???? 9
如果用sum,group by 则只能得到
A SUM(C)
-- ----------------------
h?? 3
m??4
n?? 6
x?? 9
无法得到B列值
==
您可能关注的文档
最近下载
- 2024-2025年数学选择性必修第一册共线向量与共面向量同步检测 2(带答案).docx VIP
- 数据治理概论课件:数据治理工具.pptx VIP
- 08J907 洁净厂房建筑构造.pdf VIP
- 04G323-2 图集钢筋混凝土吊车梁(工作级别A4、A5).pdf VIP
- 全国优质课一等奖统编版语文八年级上册唐诗五首《野望》《黄鹤楼》《使至塞上》《渡荆门送别》《钱塘湖春行》公开课课件.pptx
- 幼儿高热惊厥的急救处理.pptx VIP
- 惯性器件原理课件.pptx VIP
- 新版建设工程工程量清单计价标准解读.pptx VIP
- 危大工程专项施工方案.doc VIP
- 莫桑比克考察报告.pdf VIP
文档评论(0)