程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 子查詢四(在select子句中使用子查詢),select子句

子查詢四(在select子句中使用子查詢),select子句

編輯:Oracle教程

子查詢四(在select子句中使用子查詢),select子句


示例一、查詢出每個部門的編號,名稱,位置,部門人數,平均工資

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 子句

示例二、使用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;

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved