示例一、查詢出每個部門的編號,名稱,位置,部門人數,平均工資
SELECT d.deptno,d.dname,d.loc, (SELECT COUNT(empno) FROM emp WHERE emp.deptno=d.deptno GROUP BY deptno) con, (SELECT AVG(sal) FROM emp WHERE emp.deptno=d.deptno GROUP BY deptno) avgsal FROM dept d
示例二、使用with子句將emp表中的數據定義為臨時表
WITH e AS( SELECT * FROM emp) SELECT * FROM e;
示例三、查詢每個部門的編號,名稱,位置,部門平均工資,人數
--查詢每個部門的編號,名稱,位置,部門平均工資,人數 WITH e AS( SELECT deptno dno,ROUND(AVG(sal),2) avgsal,COUNT(empno) con FROM emp GROUP BY deptno ) SELECT d.deptno,d.dname,d.loc,e.avgsal,e.con FROM dept d,e WHERE d.deptno=e.dno(+);
示例四、查詢每個部門工資最高的員工編號,姓名,職位,入職日期,工資,部門編號,部門名稱,顯示結果按部門編號進行排序
WITH e AS( SELECT deptno dno,MAX(sal) maxsal FROM emp GROUP BY deptno ) SELECT em.ename,em.job,em.hiredate,em.sal,d.deptno,d.dname FROM emp em,dept d,e WHERE em.deptno=e.dno AND em.sal=e.maxsal AND d.deptno=e.dno ORDER BY em.deptno;