【Oracle练习】⑤第6章 分组函数

来源:互联网 发布:3d彩票预测软件 编辑:程序博客网 时间:2024/05/17 01:01

第六章

1. 显示平均工资为>2000的职位

SELECT AVG(sal), dname FROM emp e, dept d GROUP BY dname HAVING AVG(sal)>2000;

2. 计算工资在2000以上,各种职位的平均工资大于3000的职位及平均工资

SELECT AVG(sal),job FROM emp WHERE sal>2000 GROUP BY job HAVING AVG(sal)>3000;

3. 找每个部门的最高和最低的工资

SELECT MIN(sal),MAX(sal),(SELECT d.dname FROM dept d WHERE d.deptno=e.deptno) FROM emp e GROUP BY deptno;

4. 找每个部门中每种职位的最高和最低的工资

SELECT deptno,job,MAX(sal),MIN(sal) FROM emp GROUP BY deptno,job ORDER BY  deptno DESC;

5. 显示出工作名称(job)中包含"MAN"的员工平均工资,最高工资,最低工资及工资的和

SELECT job, AVG(sal),MAX(sal),MIN(sal),SUM(sal) FROM emp GROUP BY job HAVING  job LIKE '%MAN%';

6. 显示出20号部门的员工人数

SELECT COUNT(1FROM emp WHERE deptno=20;

7. 显示出平均工资大于2000的部门名称及平均工资

SELECT d.dname,AVG(sal) FROM dept d,emp e GROUP BY d.dname HAVING AVG(sal)>2000

8. 显示每个部门每种工作平均工资大于2500的部门及工作

SELECT d.dname,e.job FROM emp e,dept d GROUP BY d.dname,e.job HAVING AVG(sal)>2500;

9. 显示出工作名称中包含"MAN",并且平均工资大于1000的工作名称及平均工资

SELECT job, AVG(sal) FROM emp GROUP BY job HAVING AVG(sal)>1000 AND job LIKE '%MAN%';

10. 显示出平均工资最高的的部门平均工资

SELECT max(avg(sal)) FROM emp GROUP BY deptno

11. 列出最低工资大于1500的各种工作

SELECT job,MIN(sal) FROM emp GROUP BY job HAVING MIN(sal)>1500;

12. 列出各部门的员工数量及平均工作年限

SELECT COUNT(empno), round(AVG(months_between(sysdate,hiredate)/12)) FROM emp GROUP BY deptno;

 

0 0
原创粉丝点击