Posted on 2008-07-04 00:10
追風舞者 閱讀(175)
評論(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)