请教一个子查询的写法

来源:百度知道 编辑:UC知道 时间:2024/06/02 13:32:33
----------------------------------------------
--17、查询出平均工资最高的部门编号、部门名称和平均工资。

select dept.deptno,dept.dname,avg(emp.sal) as '部门最高工资'
from emp,dept
group by dept.dname,emp.sal,dept.deptno
having sal > all(select avg(sal) as '各部门最高平均工资'
from emp
group by deptno)
---------------以上是我写的---------------------

但是得到的是多条记录怎么把他显示唯一最高的 对了 题目是

'针对DEPT和EMP表,查询出没有员工的部门号和部门名称(要求用两种方法)'
额 这个不能用TOP1哦 因为不能排除工资最高中也有相同的人 这样就很不合理了

查询出平均工资最高的部门编号、部门名称和平均工资:
只需按平均工资降序排列并取得第一条记录即可
select top1 d.deptno,d.dname,avg(e.sal) as avgsal
from emp e,dept d where e.deptno=d.deptno order by avgsal desc!

select dept.deptno,dept.dname,avg(emp.sal) as '部门最高工资'
from emp,dept
group by dept.dname,emp.sal,dept.deptno
having sal > all(select max(avg(sal)) as '各部门最高平均工资'
from emp
group by deptno)
试试看,这样就可以拉!