这道题为什么不用group by
select a.empno ,a.ename ,a.sal ,a.deptno ,b.avgsal from emp a inner join ( select deptno ,avg(sal) as avgsal from emp b group by deptno ) b on b.deptno =a.deptno where a.sal > b.avgsal
未执行过。自行尝试。
因为select后只有avg()这样一列,group by 后必须出现的是除了分组函数外的列,此题并没有其他的列所以可以写可以不写
select empno,ename,sal,(select avg(sal)
from emp group by deptno
having deptno=e.deptno) from emp e where sal>(select avg(sal)
from emp group by deptno
having deptno=e.deptno)
这样也可以查询出来 但是我感觉这个代码太冗杂了 还是视频里的简单一点