这道题为什么不用group by

来源:4-10 [Oracle] 主查询和子查询的执行顺序

慕粉7211035

2017-05-25 09:01

这道题为什么不用group by

写回答 关注

3回答

  • 慕斯卡6169147
    2020-11-30 14:47:22
    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

    未执行过。自行尝试。

  • calm张星
    2017-10-11 16:14:53

    因为select后只有avg()这样一列,group by 后必须出现的是除了分组函数外的列,此题并没有其他的列所以可以写可以不写

  • 犁不动田的大牛
    2017-05-28 15:45:58

    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)

    这样也可以查询出来 但是我感觉这个代码太冗杂了 还是视频里的简单一点

Oracle高级查询

数据库开发中应用广泛的高级查询,本教程通过大量的案例详细讲解

62884 学习 · 144 问题

查看课程

相似问题