zoukankan      html  css  js  c++  java
  • HAVING用法

    https://blog.csdn.net/u013182960/article/details/80819505

    幽夜落雨 2018-06-26 18:57:38 79083 收藏 37
    分类专栏: DB
    版权
    1
    语法:

    group by 字段 having 条件判断;

    group by的用法我已经在上一篇经验中介绍了

    2
    还是已员工绩效表为例


    3
    我们如果就是查询每个部门成绩大于89的员工数,可以这样写:

    SELECT dept,COUNT(user_name) FROM ec_uses WHERE score>89 GROUP BY dept;

    对这个查询的过程进行分析,其实是:先查出绩效成绩大于89的员工记录,然后再用count聚合函数统计部门的人数,也就是说where是在聚合之前筛选记录的,那么如果我们要在聚合之后筛选记录该如何处理呢?


    4
    例如,在上面的基础上再加一个条件,查询部门人数大于1的部门

    那么我们是先要统计出每个部门的人数,也就是要用count聚合函数,然后再看哪些部门的人数是多于1人的

    也就是筛选条件是在聚合之后的,这时where已不能满足使用,我们就需要用到having了

    sql:

    SELECT dept,COUNT(user_name) count_tmp FROM ec_uses GROUP BY dept HAVING count_tmp>1;

    5
    看执行结果


    6
    所以having子句对我们筛选分组后的数据非常方便
    7
    值得注意的是having后面跟的条件判断的字段必须是聚合函数返回的结果,否则sql会报错,例如:

    SELECT dept,COUNT(user_name) count_tmp FROM ec_uses GROUP BY dept HAVING score>1;


    ————————————————
    版权声明:本文为CSDN博主「幽夜落雨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u013182960/article/details/80819505

  • 相关阅读:
    C/S 随思录
    3dTiles 最后一块拼图:几何误差与屏幕空间误差
    aps.net cannot connect to runtime process
    asp.net web api swagger使用总结
    asp.net webaip 跨域
    LightGBM算法实践
    Zabbix 机器 CPU 飙高 和 时区相差8个小时
    【vue踩坑记录】3、“Error in render: "TypeError: Cannot read property '0' of undefined"”渲染错误问题
    1-关于补码的理解
    vscode快捷键
  • 原文地址:https://www.cnblogs.com/swiftycc/p/14693541.html
Copyright © 2011-2022 走看看