易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle分析函数参考手册

转至(http://xsb.itpub.net/post/419/33028)
22/06/2005 12:22 FP
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于
组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。
下面例子中使用的表来自Oracle自带的HR用户下的表,如果
没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来
创建。
除本文内容外,你还可参考:
ROLLUP与CUBE http://xsb.itpub.net/post/419/29159
分析函数使用例子介绍:http://xsb.itpub.net/post/419/44634
本文如果未指明,缺省是在HR用户下运行例子。
开窗函数的的理解:
开窗函数指定了分析函数工作的数据窗口大小,这个
数据窗口大小可能会随着行的变化而变化,举例如下:
over(order by salary) 按照salary排序进行累计,order
by是个默认的开窗函数
over(partition by deptno)按照部门分区
over(order by salary
range between 50 preceding and 150 following)
每行对应的数据窗口是之前行幅度值不超过50,之
后行幅度值不超过150
over(order by salary rows between 50 preceding and 150
following)
每行对应的数据窗口是之前50行,之后150行
over(order by salary rows
between unbounded preceding and unbounded following)
每行对应的数据窗口是从第一行到最
后一行,等效:
over(order by salary range between unbounded preceding and
unbounded following)
主要参考资料:《expert
one-on-one》 Tom Kyte 《Oracle9i SQL Reference》第6章
AVG
功能描述:用于计算一个组和数据窗口内表达式的平均值。
SAMPLE:下面的例子中列c_mavg计算员工表
中每个员工的平均薪水报告,该平均值由当前员工和与之具有相同经理的前一个和后一个三者的平均数得来;
SELECT manager_id, last_name, hire_date, salary,
AVG(salary)
OVER (PARTITION BY manager_id ORDER BY hire_date
ROWS BETWEEN 1
PRECEDING AND 1 FOLLOWING) AS c_mavg
from employees;
MANAGER_ID LAST_NAME HIRE_DATE SALARY C_MAVG
----------
------------------------- --------- ---------- ----------
100 Kochhar
21-SEP-89 17000 17000
100 De Haan 13-JAN-93 17000 15000
100
Raphaely 07-DEC-94 11000 11966.6667
100 Kaufling 01-MAY-95 7900
10633.3333
100 Hart


相关文档:

oracle数据文件恢复

1.    准备工作
把旧的ORACLE所有文件都COPY备份下来,删除旧目录,再重新安装ORACLE,目录和旧目录一样(如果不一样,要修改的地方比较多).只安装ORACLE,不创建数据库。要恢复的实例为ORCL 。
2.用命令方式,通过要旧的ORA文件创建新的实例ORCL
a)     oradim -new -sid ORCL(创建实例� ......

oracle 分区表的建立方法

oracle 分区表的建立方法 

Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。
Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个� ......

Oracle初步接触时遇到的问题及解决办法

今天在机器上装Oracle 10g,安装完成以后出现错误提示“ORA-00988: 口令缺失或无效”,然后就无法进入控制台进行相应的操作和管理,我以前在安装Oracle 9时并没有出现过
这个错误。然后卸载后重新安装,问题依旧,折腾了好大一阵终于弄明白是怎么一回事了。
这种情况通常发生于创建 Oracle 例程时指定了非正常的全局数据� ......

Oracle中把yyyy mm dd转成yyyy年mm月dd日


SQL> select   to_char(sysdate,'yyyy')||'年'||to_char(sysdate,'mm')||'月'||to_char(sysdate,'dd')||'日'  from   dual;
TO_CHAR(SYSDATE,'YYYY')||'年'|
或者使用双引号
select to_char(add_months(trunc(sysdate),-1),'yyyy"年"mm"月"') from dual    取上个月份
......

oracle mutex

An introduction to Mutexes in 10gR2
By Connie Green, Kumar Rajamani
from meetings with: Kumar Rajamani, Russell Green, Saureen Shah, Cecilia Gervasio and Connie Green
Introduction
This paper is intended as an introduction to mutexes.  It describes new concepts associated with mutexes, when ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号