1. 1

    语法:

    group by 字段 having 条件判断;

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

  2. 2

    还是已员工绩效表为例

     
  3. 3

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

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

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

     
  4. 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. 5

    看执行结果

     
  6. 6
    所以having子句对我们筛选分组后的数据非常方便
  7. 7

    值得注意的是having后面跟的条件判断的字段必须是聚合函数返回的结果,否则sql会报错,例如:

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

     

mysql中的用法 count group by having的更多相关文章

  1. mysql 中order by 与group by的顺序

    mysql 中order by 与group by的顺序 是: select from where group by order by 注意:group by 比order by先执行,order b ...

  2. (转载)mysql中limit用法

    (转载)http://hi.baidu.com/sppeivan/item/e45179375d6778c62f8ec221   mysql中limit用法 使用查询语句的时候,经常要返回前几条或者中 ...

  3. MySQL中group_concat函数-和group by配合使用

    MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔 ...

  4. 非空校验在oracle和mysql中的用法

    oracle判断是否为null nvl(参数1,参数2) :如果参数1为null则返回参数2,否则返回参数1 mysql判断是否为null ifnull(参数1,参数2) :如果参数1为null则返回 ...

  5. Mysql中Join用法及优化

    Join的几种类型 笛卡尔积(交叉连接) 如果A表有n条记录,B表有m条记录,笛卡尔积产生的结果就会产生n*m条记录.在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者直接用f ...

  6. Mysql中timestamp用法详解

    前言:时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的. 完整的. 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间.使用数字签名技术产生的数据, 签名的对象包括了 ...

  7. mysql中函数DISTINCT,group by,CONCAT及GROUP_CONCAT的使用

    一:DISTINCT 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是 ...

  8. mysql 中 group_concat()用法

     基本语法:group_concat([DISTINCT] 要连接的字段 [Order BY  排序字段 ASC/DESC] [Separator '分隔符']) 初始数据:              ...

  9. MySQL中Alter用法小结

    alter 方法是我们在处理MySQL数据库中一个常见的方法,能帮助我们更好的处理数据库中的表 1.增加 数据库中表的字段:alter table table_name add [column] co ...

随机推荐

  1. 用accessKey设置快捷键

    <!DOCTYPE html> <html> <body> <a href="http://www.w3school.com.cn/html/&qu ...

  2. 使用layer 弹出对话框 子父页面相互参数传递 父页面获取子页面参数实例

    一.先看效果: 1.点击三个点的图标弹出了子页面: 2.子页面调用父页面方法,图一调用父页面方法,图二得到父页面var变量.           3.选择之后,关闭弹框,父页面得到子页面单选框选择的v ...

  3. 2018-2019-2 网络对抗技术 20165227 Exp4 恶意代码分析

    2018-2019-2 网络对抗技术 20165227 Exp4 恶意代码分析 实验步骤: 使用的设备:Win7(虚拟机).kali(虚拟机) 实验一:使用如计划任务,每隔一分钟记录自己的电脑有哪些程 ...

  4. ResNet152网络复现(Caffe)

    一.准备数据集 1)  下载数据集 Imagnet网站上下载了三类图片,分别是big cat.dog.fish,其中训练集的图片数一共是4149,测试集的图片数是1003,训练集和测试集的图片数比例4 ...

  5. Junit的Assert用法

    package junit.framework; /** * A set of assert methods. Messages are only displayed when an assert f ...

  6. Python数据分析入门

    Python数据分析入门 最近,Analysis with Programming加入了Planet Python.作为该网站的首批特约博客,我这里来分享一下如何通过Python来开始数据分析.具体内 ...

  7. kafka系列七、kafka核心配置

    一.producer核心配置 1.acks :发送应答(默认值:1) 生产者在考虑完成请求之前要求leader收到的确认的数量.这控制了发送的记录的持久性.允许以下设置: acks=0:设置为0,则生 ...

  8. R-TREE

    原文地址:http://blog.csdn.net/sunmenggmail/article/details/8122743 1984年,加州大学伯克利分校的Guttman发表了一篇题为“R-tree ...

  9. 转载:JAVA序列化与反序列化 (作者:YSOcean)

    原文:https://www.cnblogs.com/ysocean/p/6870069.html File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878 ...

  10. VMware环境和Window环境进行网络连接的问题

    一. 首先贴出本人在网络上找到与VMware网络连接相关的知识点 安装完虚拟机后,默认安装了两个虚拟网卡,VMnet1和VMnet8,其他的未安装(当然也可以手动安装其他的).其中VMnet1是hos ...