当前位置: 代码迷 >> Oracle开发 >> 子查询4(在select子句中使用子查询)
  详细解决方案

子查询4(在select子句中使用子查询)

热度:103   发布时间:2016-04-24 06:30:47.0
子查询四(在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) avgsalFROM 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.conFROM dept d,eWHERE 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.dnameFROM emp em,dept d,eWHERE em.deptno=e.dno       AND em.sal=e.maxsal       AND d.deptno=e.dno       ORDER BY em.deptno;

 

  相关解决方案