- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Oracle分析函数
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。
下面例子中使用的表来自Oracle自带的HR用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来创建。
除本文内容外,你还可参考:
ROLLUP与CUBE/post/419/29159
分析函数使用例子介绍:/post/419/44634
本文如果未指明,缺省是在HR用户下运行例子。
开窗函数的的理解:
开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下:
over(orderbysalary)按照salary排序进行累计,orderby是个默认的开窗函数
over(partitionbydeptno)按照部门分区
over(orderbysalaryrangebetween50precedingand150following)
每行对应的数据窗口是之前行幅度值不超过50,之后行幅度值不超过150
over(orderbysalaryrowsbetween50precedingand150following)
每行对应的数据窗口是之前50行,之后150行
over(orderbysalaryrowsbetweenunboundedprecedingandunboundedfollowing)
每行对应的数据窗口是从第一行到最后一行,等效:
over(orderbysalaryrangebetweenunboundedprecedingandunboundedfollowing)
主要参考资料:《expertone-on-one》TomKyte《Oracle9iSQLReference》第6章
1).AVG
功能描述:用于计算一个组和数据窗口内表达式的平均值。
SAMPLE:下面的例子中列c_mavg计算员工表中每个员工的平均薪水报告,该平均值由当前员工和与之具有相同经理的前一个和后一个三者的平均数得来;
SELECTmanager_id,last_name,hire_date,salary,
AVG(salary)OVER(PARTITIONBYmanager_idORDERBYhire_date
ROWSBETWEEN1PRECEDINGAND1FOLLOWING)ASc_mavg
FROMemployees;
MANAGER_IDLAST_NAMEHIRE_DATESALARYC_MAVG
----------------------------------------------------------------
100Kochhar21-SEP-891700017000
100DeHaan13-JAN-931700015000
100Raphaely07-DEC-941100011966.6667
100Kaufling01-MAY-95790010633.3333
100Hartstein17-FEB-96130009633.33333
100Weiss18-JUL-96800011666.6667
100Russell01-OCT-961400011833.3333
2).CORR
功能描述:返回一对表达式的相关系数,它是如下的缩写:
COVAR_POP(expr1,expr2)/STDDEV_POP(expr1)*STDDEV_POP(expr2))
从统计上讲,相关性是变量之间关联的强度,变量之间的关联意味着在某种程度
上一个变量的值可由其它的值进行预测。通过返回一个-1~1之间的一个数,相关
系数给出了关联的强度,0表示不相关。
SAMPLE:下例返回1998年月销售收入和月单位销售的关系的累积系数(本例在SH用户下运行)
SELECTt.calendar_month_number,
CORR(SUM(s.amount_sold),SUM(s.quantity_sold))
OVER(ORDERBYt.calendar_month_number)asCUM_CORR
FROMsaless,timest
WHEREs.time_id=t.time_idANDcalendar_year=1998
GROUPBYt
您可能关注的文档
最近下载
- 声控灯的安装与调试工作页.doc VIP
- 2024年全国统一高考化学试卷(新课标)(含解析版).docx
- 2024春期国开电大《应用写作(汉语)》形考任务1-6参考答案.doc
- 佳能PowerShot使用手册SX70HS说明书.pdf
- 重大社2024初中信息科技1教材解读-七年级上册第一单元(吴跃进).pptx
- 谦敬辞训练题(答案).doc
- 《等腰三角形的判定》PPT课件.pptx
- 原发性肝癌诊疗指南(2024年版)内科及系统治疗解读.pptx
- 线性多智能体系统的自适应动态事件触发一致性Adaptive Dynamic Event-Triggered Consensus of Linear Multi-Agent Systems-来源:理论数学(第2021011期)-汉斯出版社.pdf VIP
- HG_T 4580-2013 农业用硝酸钙.docx
文档评论(0)