课程
/数据库
/Oracle
/Oracle高级查询
这道题为什么不用group by
2017-05-25
源自:Oracle高级查询 4-10
正在回答
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)
having deptno=e.deptno)
这样也可以查询出来 但是我感觉这个代码太冗杂了 还是视频里的简单一点
举报
数据库开发中应用广泛的高级查询,本教程通过大量的案例详细讲解
5 回答having字句的group by字句同时使用时,前后顺序有要求吗?
2 回答wm_concat 不是组函数么?为什么这里要用where,而不是having?
3 回答老师所讲的代码中有order by 1 ,order by 后面不应该是一个字段名吗
1 回答这里直接用子查询里的不就行了 ,为什么还要写主查询
3 回答为什么使用a命令无效呢?