美文网首页程序员
1.4having子句的使用以及和where的区别

1.4having子句的使用以及和where的区别

作者: 寒枝旧廊 | 来源:发表于2018-09-07 19:21 被阅读0次

    首先说一下having子句的作用:having子句主要用于过滤分组

    分组函数也叫组函数也叫多行函数

    (1)having子句的使用

            求平均工资大于2000点部门

                    select    deptno , avg(sal)    from    emp    group    by    deptno    having    avg(sal)>2000;

     (2)where与having点区别

            不能在where子句中使用组函数,但是可以在having子句中使用组函数

            不含分组函数时where和having是可以通用的

    (3)错误示例

            select    deptno,avg(sal)    from    emp    where    avg(sal) > 2000    group    by    deptno;

    (4)where和having可以通用的情况

            查询10号部门的平均工资

            select    deptno,avg(sal)    from    emp    group    by    deptno    having    deptno    =    10;

            select    deptno,avg(sal)    from    emp    where    deptno=10    group    by    deptno;

    (5)注意:从SQL优化的角度尽量使用where

            原因:having先分组后过滤,where先过滤后分组

            where使得分组记录数大大降低,从而提高效率

    相关文章

      网友评论

        本文标题:1.4having子句的使用以及和where的区别

        本文链接:https://www.haomeiwen.com/subject/ejjzwftx.html