#1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。
SELECT deptno FROM emp GROUP BY deptno HAVING COUNT(deptno) > 0;
#2. 列出所有员工的姓名及其直接上级的姓名。
SELECT e1.ename AS 员工,e2.ename AS 上级 FROM emp AS e1 INNER JOIN emp AS e2 ON e1.mgr = e2.empno;
#3. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。
SELECT e1.empno ,e1.ename FROM emp AS e1 INNER JOIN emp AS e2 ON e1.hiredate < e2.hiredate AND e1.mgr = e2.empno;
#4. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
SELECT d.dname,e.ename FROM dept AS d LEFT JOIN emp AS e ON e.deptno = d.deptno;
#5. 列出最低薪金大于15000的各种工作及从事此工作的员工人数。
SELECT job,COUNT(ename) FROM emp WHERE sal>15000 GROUP BY job;
#6. 列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。
SELECT e.ename FROM emp AS e LEFT JOIN dept AS d ON e.deptno = d.deptno WHERE d.dname = '销售部';
#7. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导,工资等级。
SELECT * FROM emp WHERE sal > (SELECT AVG(sal) FROM emp) ;
#8.列出与大乔从事相同工作的所有员工及部门名称。
SELECT ename FROM emp WHERE job = (SELECT job FROM emp WHERE ename = '大乔') AND ename != '大乔';
#9.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金、部门名称。
SELECT * FROM emp WHERE sal > ALL(SELECT sal FROM emp WHERE deptno = 30);