--多列
子查询当表使用
--查询各部门工资最高的前三名
select *
from (select ename,sal,deptno,rank()over(partition by deptno order by sal desc) 排名
from emp)
where 排名<=3
--查询emp表每个部门的最高工资,最低工资,人数,平均工资
--显示(最高工资-最低工资)/人数>平均工资的三分之一的部门
select deptno,max(sal),min(sal),count(1),avg(sal)
from emp
group by deptno
having (max(sal)-min(sal))/count(1)>avg(sal)/3
或
select deptno
from (select deptno,max(sal) a,min(sal) i,count(1) c,avg(sal) v
from emp
group by deptno)
where (a-i)/c>v/3
--查询emp表每个部门的最高工资,最低工资,人数,平均工资
--显示(最高工资-最低工资)/人数的值最大的部门
select deptno
from emp
group by deptno
having (max(sal)-min(sal))/count(1)=(select max((max(sal)-min(sal))/count(1))
from emp
group by deptno)
select deptno
from (select deptno,max(sal) a,min(sal) i,count(1) c,avg(sal) v
from emp
group by deptno)
where (a-i)/c=(select max((a-i)/c)
&n

本文详细介绍了PLSQL中的子查询和表连接,包括多列子查询、WITH子查询、各种类型的表连接(内连接、左连接、右连接、全连接),以及不等值连接和自连接。此外,还探讨了ON与WHERE子句的区别,并举例说明如何查询特定条件的数据。

422

被折叠的 条评论
为什么被折叠?



