如何用最初级的Oracle语句执行如下任务

来源:百度知道 编辑:UC知道 时间:2024/06/13 23:34:09
显示每个部门每个岗位的平均工资、每个部门的平均工资、每个岗位的平均工资。
主要想看看是用什么嵌套的思路,如果还有更好的函数表达出来也可以,但是主要要的是简单语句的。
是在PLSQLDEP上操作的,不用建表什么的,表都有了,老师就是让我们把这个查询语句写出来,谢谢~

[TEST@ora10gr1#2009-11-07/18:07:41] SQL>select * from test1;

部门 岗位 工资
---------- ---------- ----------
部门1 职位1 10
部门1 职位1 20
部门1 职位1 30
部门1 职位2 40
部门1 职位2 50
部门2 职位1 60
部门2 职位1 70
部门2 职位2 80
部门2 职位2 90

9 rows selected.

[TEST@ora10gr1#2009-11-07/18:09:30] SQL>select distinct * from(
2 select
3 部门,岗位,
4 avg(工资)over(partition by 部门,岗位) as 每个部门每个岗位的平均工资,
5 avg(工资)over(partition by 部门) as 部门的平均工资,
6 avg(工资)over(partition by 岗位) as 岗位的平均工资
7 from test1
8 );

部门 岗位 每个部门每个岗位的平均工资 部门的平均工资 岗位的平均工资
---------- ---------- -------------------------- -------------- --------------
部门1 职位1 20