SQL查找所有平均结果的最大值

问题描述:

我有关系指导(ID,名称,dept_name,薪水)。SQL查找所有平均结果的最大值

我该如何去寻找平均工资最高的部门名称?

+0

忘记提到,这是Oracle SQL – Doug 2010-02-02 16:09:17

将这个做的伎俩工作?

select top 1 id, name, avg (salary) 
from instructor 
group by id, name 
order by avg (salary) desc 
+0

号我可以用得到所有部门的的平均值: 选择DEPT_NAME,AVG(工资) 从讲师 组由DEPT_NAME 但我无法从中选择最高的平均工资部门。 – Doug 2010-02-02 15:41:15

+0

你可以通过“desc avg(工资)限制1”来查看最高。从讲师 组由DEPT_NAME 为了通过AVG(工资)递减限制1 – Don 2010-02-02 15:46:40

+0

选择DEPT_NAME 给我一个错误“SQL命令不能正确地结束” – Doug 2010-02-02 15:52:43

貌似为HAVING条款

+0

东西沿着线: 具有平均(工资)> ? – Doug 2010-02-02 15:46:40

鉴于功课标签,我不会拼出来给你,但你要考虑的AVG功能和GROUP BY条款。

+1

这确实是家庭作业,我没有把它标记为这样的错误,但我一直在努力研究它,并且无法想象它。 – Doug 2010-02-02 15:37:22

select top 1 dept_name, avg(salary) as AvgSalary 
from instructor 
group by dept_name 
order by AvgSalary desc 

如果两个部门的平均工资相同,这将使您得到两个部分,如果不需要,则使用rownum = 1。

with averages as (select dept_name,avg(salary) aver from instructor group by dept_name) select dept_name from averages where aver = (select max(aver) from averages)