鍍金池/ 問答/數(shù)據(jù)庫/ 求解 group by的問題

求解 group by的問題

select max(avg(sal)) "部門平均工資的最大值",deptno "部門編號"
from emp
group by deptno;
錯誤

select avg(sal)"部門平均工資",deptno "部門編號"
from emp
group by deptno;
正確

上面兩個sql語句沒有明白,求詳解

group by 子句的細節(jié):
1)在select子句中出現(xiàn)的非多行函數(shù)的所有列,【必須】出現(xiàn)在group by子句中
2)在group by子句中出現(xiàn)的所有列,【可出現(xiàn)可不現(xiàn)】在select子句中

回答
編輯回答
傻丟丟

善用搜索
select max(a.str_avg),a.deptno from (select avg(sal) as str_avg,deptno from emp group by deptno) a group by a.deptno;
不能對包含聚合或子查詢的表達式執(zhí)行聚合函數(shù)。也就是說max,min,avg是不能嵌套的。既然按部門進行分組,那么每個部分就會存在一個最大值和一個平均值select max(sal),avg(sal) ,deptno from emp group by deptno 如果你想要查哪個部門的平均值是最高的select max(maxsal),deptno from (select avg(sal),deptno from emp group by deptno) a

2017年11月19日 01:29