zoukankan      html  css  js  c++  java
  • SQL语句中where和having的区别

    SQL语句中where和having的区别

    where是一个约束声明,是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据。where字句中不能包含聚组函数。where语句显示特定的行。

    having是一个过滤声明,是筛选满足条件的组,即在分组之后过滤数据。having字句中可以包含聚组函数。having语句显示特定的组。

    例1:查询平均工资大于200000的部门

    此时只能使用having,而不能使用where。一来,我们要使用聚合语句avg;二来,我们要对聚合后的结果进行筛选(average > 3000),因此使用where会被告知sql有误。

    例2:查询每个部门工资大于30000的员工个数

    where在group by之前执行,having 在group by 之后执行。

    where和having 可以同时存在一个SQL语句中。

  • 相关阅读:
    2018-div-matrix
    cf663div2
    生成树
    Call to your teacher
    并查集总结
    分组背包
    被3整除的子序列
    多重背包
    12.05
    django生命周期图
  • 原文地址:https://www.cnblogs.com/haoxiaopa/p/4857751.html
Copyright © 2011-2022 走看看