欢迎来到天天文库
浏览记录
ID:20250863
大小:92.00 KB
页数:23页
时间:2018-10-11
《oracle分析函数等高级sql》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Oracle9i分析函数参考手册 Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。下面例子中使用的表来自Oracle自带的HR用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来创建。 少数几个例子需要访问SH用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/sales_hist
2、ory/sh_main.sql来创建。 如果未指明缺省是在HR用户下运行例子。 开窗函数的的理解: 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下:over(orderbysalary)按照salary排序进行累计,orderby是个默认的开窗函数over(partitionbydeptno)按照部门分区over(orderbysalaryrangebetween50precedingand150following)每行对应的数据窗口是之前行幅度值不超过50,之后行幅度值不超过150over
3、(orderbysalaryrowsbetween50precedingand150following)每行对应的数据窗口是之前50行,之后150行over(orderbysalaryrowsbetweenunboundedprecedingandunboundedfollowing)每行对应的数据窗口是从第一行到最后一行,等效:over(orderbysalaryrangebetweenunboundedprecedingandunboundedfollowing)主要参考资料:《expertone-on-one》TomKyte 《Oracle9iS
4、QLReference》第6章AVG功能描述:用于计算一个组和数据窗口内表达式的平均值。SAMPLE:下面的例子中列c_mavg计算员工表中每个员工的平均薪水报告,该平均值由当前员工和与之具有相同经理的前一个和后一个三者的平均数得来;SELECTmanager_id,last_name,hire_date,salary, AVG(salary)OVER(PARTITIONBYmanager_idORDERBYhire_date ROWSBETWEEN1PRECEDINGAND1FOLLOWING)ASc_mavg FROMemployees;MAN
5、AGER_IDLAST_NAME HIRE_DATE SALARY C_MAVG---------------------------------------------------------------- 100Kochhar 21-SEP-89 17000 17000 100DeHaan 13-JAN-93 17000 15000 100Raphaely 07-DEC-94 1100011966.666
6、7 100Kaufling 01-MAY-95 790010633.3333 100Hartstein 17-FEB-96 130009633.33333 100Weiss 18-JUL-96 800020currencydeposit,weprescribeapassonaregularbasis,qilucardaccountonaregularbasis),certificatebondsandsavingsbonds(electronic);
7、3.notdrawnonabanksavingscertificate,certificatebondsapplyformortgageloans,acceptingonlythelender11666.6667 100Russell 01-OCT-96 1400011833.3333...CORR功能描述:返回一对表达式的相关系数,它是如下的缩写: COVAR_POP(expr1,expr2)/STDDEV_POP(expr1)*STDDEV_POP(expr2)) 从统计上讲,相关性是变量之间关联
8、的强度,变量之间的关联意味着在某种程度 上一个变量的值可由其它的值进行
此文档下载收益归作者所有