Posted on 2008-07-04 00:10
追风舞者 阅读(169)
评论(0) 编辑 收藏 所属分类:
Database
窗口函数
Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。
开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下:
1) over(order by salary)
按照salary排序进行累计,order by是个默认的开窗函数
2) over(partition by deptno)
按照部门分区
3) over(order by salary range between 50 preceding and 150 following)
每行对应的数据窗口是之前行幅度值不超过50,之后行幅度值不超过150
4) over(order by salary rows between 50 preceding and 150 following)
每行对应的数据窗口是之前50行,之后150行
5) over(order by salary rows between unbounded preceding and unbounded following)
每行对应的数据窗口是从第一行到最后一行,等效:
over(order by salary range between unbounded preceding and unbounded following)