--1、列出至少有一个员工的所有部门
select deptno,count(*) a from emp group by deptno having count(*)>1
select deptno, count(*) size from emp group by deptno
select * from (select deptno, count(*) size from emp group by deptno) pp where pp.size > 1
--2、列出薪金比‘SMITH’多的所有员工 ->子查询
select * from emp where sal>(select sal from emp where ename='smith')
--3、列出所有员工的姓名及其直接上级的姓名 ->>自连接
select worker.ename,boss.ename from emp worker,emp boss where worker.mgr=boss.empno
--4、列出受雇日期晚于其直接上级的所有员工
select worker.ename from emp worker,emp boss where worker.mgr=boss.empno and worker.hiredate>boss.hiredate
--5、列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门
select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno
--6、列出所有'clerk'(办事员)的姓名及其部门名称
select ename,dname from emp e,dept d where e.deptno=d.deptno and e.job='clerk'
--7、列出最低薪金大于1500的各种工作
--7.1先找出各个工作的最低薪金
select min(sal),job from emp group by job
select min(sal),job from emp group by job having min(sal)>1500
select job from (select min(sal) a,job from emp group by job) q where a>1500
--8、列出在部门‘sales’(销售部)工作的员工的姓名,假定不知道销售部的部门编号
select ename,'sales' from emp where deptno=(select deptno from dept where dname='sales')
select ename from emp,dept where emp.deptno=dept.deptno and dept.dname='sales'
--9、列出薪金高于公司平均薪金的所有员工
select * from emp where sal>(select avg(sal) from emp)
--10、列出与‘scott’从事相同工作的所有员工
select * from emp where job=(select job from emp where ename='scott')
--11、列出在每个部门工作的员工数量、平均工资
select deptno, count(*) 员工数量, avg(sal) 平均工资 from emp group by deptno
--12、列出所有员工的姓名、部门名称和工资
select ename,dname,sal from emp,dept where emp.deptno=dept.deptno
--13、找出各种工作的最低工资
select job,min(sal) 最低工资 from emp group by job
--14、找出manager(经理)的最低薪金
select min(sal) from emp where job='manager'
--15、列出所有员工的年工资、按年薪从低到高排序
select sal*13 aa from emp order by aa
select sal*13 年工资 from emp order by 年工资
网友评论