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

求解 group by的問(wèn)題

select max(avg(sal)) "部門(mén)平均工資的最大值",deptno "部門(mén)編號(hào)"
from emp
group by deptno;
錯(cuò)誤

select avg(sal)"部門(mén)平均工資",deptno "部門(mén)編號(hào)"
from emp
group by deptno;
正確

上面兩個(gè)sql語(yǔ)句沒(méi)有明白,求詳解

group by 子句的細(xì)節(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;
不能對(duì)包含聚合或子查詢的表達(dá)式執(zhí)行聚合函數(shù)。也就是說(shuō)max,min,avg是不能嵌套的。既然按部門(mén)進(jìn)行分組,那么每個(gè)部分就會(huì)存在一個(gè)最大值和一個(gè)平均值select max(sal),avg(sal) ,deptno from emp group by deptno 如果你想要查哪個(gè)部門(mén)的平均值是最高的select max(maxsal),deptno from (select avg(sal),deptno from emp group by deptno) a

2017年11月19日 01:29