--1.查询哪个部门的平均工资是最高的,列出部门编码、平均工资。
select deptno,avg(sal) from emp group by deptno having avg(sal)=(select max(avg(sal)) from emp group by deptno);
--2.列出各个部门中工资最高的员工的信息:名字、部门号、工资。
select emp.ename,emp.deptno,emp.sal
from emp,(select deptno t_dept,max(sal) t_maxsal from emp group by deptno) tab1
where emp.deptno=tab1.t_dept and emp.sal=tab1.t_maxsal;
--3.查询上级是“KING”的员工姓名(ename)和工资(sal)。
select ename,sal from emp where mgr=(select empno from emp where ename=‘KING‘);
--4.查询部门所在地(loc)为“NEW YORK”的部门的员工的姓名(ename),部门名称(dname)和岗位名称(job)
select ename,deptno,job from emp where deptno=(select deptno from dept where loc=‘NEW YORK‘);
--5.查询工资比公司平均工资高的所有员工的员工号(empno), 姓名(ename)和工资(sal)。
select empno,ename,sal from emp where sal>(select avg(sal) from emp);
--6.查询姓名中包含字母“u”的员工在相同部门的员工的员工号(empno)和姓名(ename)。
select empno,ename from emp where deptno=(select deptno from emp where ename like ‘%U%‘);
--7.查询哪些员工的薪水比本部门的平均薪水低。
select emp.*
from emp,(select deptno,avg(sal) avg_sal from emp group by deptno) tab
where emp.deptno=tab.deptno and emp.sal<tab.avg_sal;
--8.查询emp表前5条记录
select * from (select emp.*,rownum rn from emp ) tab1 where tab1.rn<=5;
--9.查询第3-5条记录,无需排序
select * from (select emp.*,rownum rn from emp ) tab1 where tab1.rn between 3 and 5;
--10.查询公司工资最高的三个人
select * from (
select tab1.*,rownum rn from (select emp.* from emp order by sal desc)tab1)tab2 where tab2.rn<=3;
--11.查询公司工资最低的五个人
select * from (
select tab1.*,rownum rn from (select emp.* from emp order by sal asc)tab1)tab2 where tab2.rn<=5;