课后作业
1.查询工资高于编号为7782的员工工资,并且和7369号员工从事相同工作的员工的编号、姓名及工资。
select empno, ename, job from emp
where sal>(select sal from emp where empno=7782)
and job=(select job from emp where empno=7369)
2.查询工资最高的员工姓名和工资。
SELECT ename ,sal from emp where sal =(SELECT MAX(sal) from emp )
3.查询部门最低工资高于10号部门最低工资的部门的编号、名称及部门最低工资。
SELECT dept.deptno,dept.dname,MIN(sal)from emp
join dept on emp.deptno=dept.deptno
GROUP BY dept.deptno,dept.dname
HAVING MIN(sal) > (SELECT min(sal )from emp where deptno =10)
4.查询员工工资为其部门最低工资的员工的编号和姓名及工资。
SELECT empno,ename,sal from emp
where sal in (SELECT MIN(sal) from emp GROUP BY deptno)
5.显示经理是KING的员工姓名,工资。
SELECT ename,sal from emp
WHERE mgr in (SELECT empno from emp where ename = 'KING')
6.显示比员工SMITH参加工作时间晚的员工姓名,工资,参加工作时间。
SELECT ename ,sal,hiredate from emp
where hiredate > (SELECT hiredate from emp where ename = 'SMITH')
7.使用子查询的方式查询哪些职员在NEW YORK工作。
SELECT ename from emp
where deptno = (SELECT deptno from dept where loc ='NEW YORK')
8.写一个查询显示和员工SMITH工作在同一个部门的员工姓名,雇佣日期,查询结果中排除SMITH。
SELECT ename,hiredate from emp
where dEPtno = (SELECT deptno from emp where ename = 'SMITH') AND ENAME NOT IN ( 'SMITH ' )
9.写一个查询显示其工资比全体职员平均工资高的员工编号、姓名。
SELECT empno, ename from emp
where sal >(SELECT AVG(sal ) from emp )
10.写一个查询显示其上级领导是King的员工姓名、工资。
SELECT ename ,sal from emp where mgr in (SELECT EMPNO from emp where ename = 'KING' )
11.显示所有工作在RESEARCH部门的员工姓名,职位。
SELECT ename ,job FROM EMP join dept on dept.deptno= emp.deptno
where dname = 'RESEARCH'
12.查询每个部门的部门编号、平均工资,要求部门的平均工资高于部门20的平均工资。
SELECT deptno ,AVG( sal) from emp
GROUP BY deptno
HAVING AVG( sal) >( SELECT AVG( sal) from emp where deptno=20)
13.查询大于自己部门平均工资的员工姓名,工资,所在 部门平均工资,高于部门平均工资的额度。
SELECT a.ename, a.sal , b.sr , a.sal - b.sr FROM emp a
join (SELECT deptno ,AVG( sal) sr from emp GROUP BY deptno) b on a.deptno=b.deptno
where a.sal > b.sr
14.列出至少有一个雇员的所有部门。
15.列出薪金比"SMITH"多的所有雇员.
16.列出入职日期早于其直接上级的所有雇员.
17.找员工姓名和直接上级的名字。
18.显示部门名称和人数.
19.显示每个部门的最高工资的员工