在oracle中 “查询并显示每个部门的最高工资、最低工资、并按照部门编号降序排列” 怎么搞?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在oracle中 “查询并显示每个部门的最高工资、最低工资、并按照部门编号降序排列” 怎么搞?相关的知识,希望对你有一定的参考价值。

select deptno, (select max(sal) from emp group by deptno) maxSal,(select min(sal) from emp group by deptno) minSal
from emp order by deptno desc 哪里错了?

错误原因是:
(select max(sal) from emp group by deptno) maxSa
(select min(sal) from emp group by deptno) minSal
group by deptno放错了位置,应该在这里去掉,在from emp 后面加上。
最好的写法是:
select deptno,max(sal) as maxSal,min(sal) as minSal from emp
group by deptno
order by deptno desc
参考技术A (select max(sal) from emp group by deptno) maxSal,(select min(sal) from emp group by deptno),这两列里出来的最大最小值,未必是对应的deptno的,而是所有部门的最大最小值,
这么改:
select a.deptno, (select max(sal) from emp where deptno=a.deptno) maxSal,(select min(sal) from emp where deptno=a.deptno) minSal
from emp a order by a.deptno desc本回答被提问者采纳
参考技术B 你不能那么写,为什么不直接应用函数
select deptno,max(sal) maxSal,min(sal) minSal from emp order by deptno desc;
参考技术C 一句代码就叫搞定了:
select deptno, max(sal) maxSal,min(sal) minSal
from emp group by deptno order by deptno desc

以上是关于在oracle中 “查询并显示每个部门的最高工资、最低工资、并按照部门编号降序排列” 怎么搞?的主要内容,如果未能解决你的问题,请参考以下文章

如何在java中读取oracle blob

在oracle中,事务中使用下列SQL语句不会引起锁定?

oracle删除分区还在编辑表中显示吗为啥

有没办法在postgreSQL中查询oracle上的数据

怎样在oracle中取出当前序列值

oracle中as是啥意思