oracle的分析函数over
发布时间:2021-01-11 08:23:38 所属栏目:站长百科 来源:网络整理
导读:副标题#e# 参考地址:https://www.cnblogs.com/chinas/p/7058771.html?utm_source=itdadaoutm_medium=referral#_lab2_0_0 说明:聚合函数(如sum()、max()等)可以计算基于组的某种聚合值,但是聚合函数对于某个组只能返回一行记录。若想对于某组返回多行记
|
示例1:显示各部门员工的工资,并附带显示该部门的最高工资 SELECT E.DEPTNO,E.EMPNO,LAST_VALUE(E.SAL) OVER(PARTITION BY E.DEPTNO ORDER BY E.SAL ROWS
/*LAST_VALUE(E.SAL) OVER(PARTITION BY E.DEPTNO ORDER BY E.SAL ROWS*/
--unbounded preceding and unbouned following针对当前所有记录的前一条、后一条记录,也就是表中的所有记录
--unbounded:不受控制的,无限的
--preceding:在...之前
--following:在...之后
-- ORACLE默认是升序
BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) MAX_SAL
FROM SCOTT.EMP E;
SELECT E.DEPTNO, 结果:
示例2:对各部门进行分组,并附带显示第一行至当前行的汇总 SELECT E.DEPTNO,--注意ROWS BETWEEN unbounded preceding AND current row 是指第一行至当前行的汇总
SUM(E.SAL) OVER(PARTITION BY E.DEPTNO ORDER BY E.ENAME ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW )MAX_SAL
FROM SCOTT.EMP E;
结果:
示例3:当前行至最后一行的汇总 SELECT EMPNO,ENAME,DEPTNO,SAL,--注意ROWS BETWEEN current row AND unbounded following 指当前行到最后一行的汇总
SUM(SAL) OVER(PARTITION BY DEPTNO
ORDER BY ENAME
ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) MAX_SAL
FROM SCOTT.EMP;
结果:
(编辑:PHP编程网 - 金华站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐




