--1.列出至少有三個員工的所有部門和部門信息。
SELECT D.DEPTNO, D.DNAME, D.LOC, T.COUNTS
FROM DEPT D, (SELECT DEPTNO, COUNT(*) COUNTS FROM EMP GROUP BY DEPTNO) T
WHERE D.DEPTNO = T.DEPTNO
AND T.COUNTS >= 3;
--2.列出受雇日期早於直接上級的所有員工的編號,姓名,部門名稱
SELECT E.EMPNO, E.ENAME, D.DNAME
FROM EMP E, EMP M, DEPT D
WHERE E.MGR = M.EMPNO
AND E.HIREDATE < M.HIREDATE
AND E.DEPTNO = D.DEPTNO;
--3.列出職位為“CLERK”的員工姓名和其所在部門名稱,部門人數:
SELECT e.ename,d.dname,t.counts
FROM emp e, dept d,
(SELECT deptno de, COUNT(*) counts FROM emp GROUP BY deptno )t
WHERE e.deptno = d.deptno AND e.deptno = t.de AND e.job = 'CLERK';
--4.列出和“SCOTT”從事相同工作的所有員工及部門名稱:
SELECT E.*, D.DNAME
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND E.JOB = (SELECT JOB FROM EMP WHERE ENAME = 'SCOTT');
--5.列出每個部門工作的員工數量、平均工資和平均服務期限(單位為年)
SELECT DEPTNO "部門編號",
COUNT(EMPNO) "人數",
ROUND(AVG(SAL)) "平均薪資",
ROUND(AVG(MONTHS_BETWEEN(SYSDATE, HIREDATE))/12) "服務年限"
FROM EMP
GROUP BY DEPTNO;
--6、列出各個部門的MANAGER 的最低薪金:
SELECT deptno, MIN(sal) FROM emp WHERE job = 'MANAGER' GROUP BY deptno;
--7、給任職日期超過10年的人加薪10%;
SELECT E.*, E.SAL * 1.1
FROM EMP E
WHERE (MONTHS_BETWEEN(SYSDATE, HIREDATE)) / 12 > 10;