表结构
员工表:
部门表:
薪水等级表:
题目
1.统计各部门员工数量 显示部门名称
思路:在使用外连接时,为了保证即便没有员工,部门也一定显示,因此用部门表左外连接员工表(或者员工表右外连接部门表)。
代码:
select dept.deptno, dname, count(empno) as count from dept left outer join emp on emp.deptno = dept.deptno group by deptno
查询结果:
2.取得每个部门最高薪水的员工名称
思路:首先取得每个部门最高薪水,再将其作为临时表d,和员工表e内连接(交集),条件为部门和薪水都相等,最后为了可读性,按照部门编号排序。
代码:
select e.ename, d.* from (select deptno, max(sal) as sal from emp group by deptno) d join emp e on e.deptno = d.deptno and e.sal = d.sal order by deptno
查询结果: