`
baobeituping
  • 浏览: 1046645 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Oracle中over()函数的使用

阅读更多

oracle中over() 函数用法  ,将自己的研究结果记录一下。

 

个人理解:over() 函数 是对 分析函数的一种条件解释,直接点就是 给分析函数加条件吧。

 

例如:

SQL

select deptno,ename,sal,sum(sal) over(partition by deptno) from emp

 

deptno,ename,sal,sum(sal) over(partition by deptno)

1 8 涂平 4000.00 27000
2 8 涂飞平 5000.00 27000
3 8 tuping 4000.00 27000
4 8 tuping  4000.00 27000
5 8 涂飞平 3000.00 27000
6 8 涂平 4000.00 27000
7 8 ganggang 3000.00 27000
8 32 wuweiling 2000.00 6000
9 32 wuweiling 2000.00 6000
10 32 吴蔚玲 2000.00 6000

 

注意最后一列,他首先是将所有的部门按编号分类,分类以后,将所有部门号相同的SAL进行累加,然后显示在于该部门号对应的记录后面,例如27000是所有8号部门的工资总和,那么在所有8号部门的该列都是27000

 

SQL

select deptno,ename,sal,sum(sal) over(order by ename) from emp

 

1 8 ganggang 3000.00 3000
2 8 tuping  4000.00 7000
3 32 wuweiling 2000.00 11000
4 32 wuweiling 2000.00 11000
5 32 吴蔚玲 2000.00 13000
6 8 涂小3平 5000.00 21000
7 8 涂小3平 3000.00 21000
8 8 涂平 4000.00 29000
9 8 涂平 4000.00 29000

 

最后一列显示的是按名字进行排序,进行工资累积求和,名字相同人的工资,首先相加,然后再和上一名字人的工资相加。

例如:

ganggang --3000

tuping --4000

加起来等于7000

两个wuweiling 是2000+2000=4000 然后和7000相加=11000,然后显示在wuweiling该行。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics