Oracle Oracle 求平均薪水最高的部门的编号
selectavg(sal)avg_sal,deptnofromempgroupbydeptno;这条可以查出平均薪水最大的和其部门编号selectmax(avg_sal...
select avg(sal) avg_sal,deptno from emp group by deptno;
这条可以查出平均薪水最大的和其部门编号
select max(avg_sal) ,deptno from
(select avg(sal) avg_sal,deptno from emp group by deptno);
这条语句是错误的。
那我为什么不能直接也一起把最大平均薪水和部门编号直接拿出来呢。什么原因?
求解释,我不需要正确答案,回答我的问题即可。谢谢 展开
这条可以查出平均薪水最大的和其部门编号
select max(avg_sal) ,deptno from
(select avg(sal) avg_sal,deptno from emp group by deptno);
这条语句是错误的。
那我为什么不能直接也一起把最大平均薪水和部门编号直接拿出来呢。什么原因?
求解释,我不需要正确答案,回答我的问题即可。谢谢 展开
5个回答
展开全部
select * from (select avg(sal) as avg_sal,deptno from emp group by deptno) as T2 where avg_sal in (select max(avg_sal) as avg_sal from (select avg(sal) as avg_sal,deptno from emp group by deptno) as T1);
这样就会不报错了。
你想知道为何不能直接得到这个结果,是只想使用第一行吗?
因为:MAX()函数、AVG()函数都是集合函数,两个集合不在同一个平面内啊!
就是从员工集合到部门先得到平均工资,然后再从各部门这个单个集合中得到最高平均工资。
所以得用第二行的句子修改完善后才好。
也是很简单嘛,挺直接了。
现在就可以了,刚才写的是有问题:应该先找到最大,然后查询到等于最大的这个的平均工资和部门
这样就会不报错了。
你想知道为何不能直接得到这个结果,是只想使用第一行吗?
因为:MAX()函数、AVG()函数都是集合函数,两个集合不在同一个平面内啊!
就是从员工集合到部门先得到平均工资,然后再从各部门这个单个集合中得到最高平均工资。
所以得用第二行的句子修改完善后才好。
也是很简单嘛,挺直接了。
现在就可以了,刚才写的是有问题:应该先找到最大,然后查询到等于最大的这个的平均工资和部门
展开全部
首先你这个写法就是错误的,你使用了max函数又查询了部门编号而最后没有分组,语法就错误了。既然要加上group分组才是对的,那你就应该知道这个语句是查询所有的部门编号,然后求出各个部门的最大平均工资。想查出最大的部门id,要在where条件中过滤才行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你应该把max(avg_sal)后面的deptno去掉,这样求出的才是最大平均工资,然后外面再套一层,把平均工资等于max(avg_sal)的记录筛选出来,这样才能得到平均工资最高的部门编号。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然可以
解释,当有聚合函数和字段一起出现时候,要使用group by进行分组,你少了group by
select max(avg_sal) ,deptno from
(select avg(sal) avg_sal,deptno from emp group by deptno) Group By deptno
解释,当有聚合函数和字段一起出现时候,要使用group by进行分组,你少了group by
select max(avg_sal) ,deptno from
(select avg(sal) avg_sal,deptno from emp group by deptno) Group By deptno
追问
你好像没看我的题目。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select department_id,avg(salary)
from employees
group by department_id
having avg(salary)=(select
max(avg(salary)) from employees
group by department_id);
from employees
group by department_id
having avg(salary)=(select
max(avg(salary)) from employees
group by department_id);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |