1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-- 8. 显示平均工资为>2000的职位
select "JOB"
from emp
group by "JOB"
having avg(sal) > 2000;
-- 9. 计算工资在2000以上,各种职位的平均工资大于3000的职位及平均工资
select "JOB", avg(sal) avgsal
from emp
group by "JOB"
having avg(sal) > 3000 and min(sal) > 2000;
-- 10. 找每个部门的最高和最低的工资
select deptno, max(sal), min(sal)
from emp
group by deptno;
-- 11. 找每个部门中每种职位的最高和最低的工资
select deptno, "JOB", max(sal), min(sal)
from emp
group by deptno, "JOB";
-- 12. 显示出工作名称(job)中包含"MAN"的员工平均工资,最高工资,最低工资及工资的和
select avg(sal) avgsal, max(sal) maxsal, min(sal) minsal, sum(sal) sumsal
from emp
where "JOB" like '%MAN%';
-- 13. 显示出20号部门的员工人数
select count(*)
from emp
where deptno = 20;
-- 14. 显示出平均工资大于2000的部门名称及平均工资
select d1.dname, d2.avgsal
from dept d1, (select deptno, avg(sal) avgsal
from emp
group by deptno
having avg(sal) > 2000) d2
where d1.deptno = d2.deptno;
-- 15. 显示每个部门每种工作平均工资大于2500的部门及工作
select deptno, "JOB"
from emp
group by deptno,"JOB"
having avg(sal)>2500;
-- 16. 显示出工作名称中包含"MAN",并且平均工资大于1000的工作名称及平均工资
select "JOB", avg(sal) avgsal
from emp
where "JOB" like '%MAN%'
group by "JOB"
having avg(sal)>1000;
-- 17. 显示出平均工资最高的的部门平均工资
select max(avgsal)
from (select avg(sal) avgsal
from emp
group by deptno);
-- 18. 列出最低工资大于1500的各种工作
select "JOB"
from emp
group by "JOB"
having min(sal) > 1500;
-- 19. 列出各部门的员工数量及平均工作年限
select deptno, count(*), avg((sysdate-hiredate)/365)
from emp
group by deptno;
|