• 技术文章 >数据库 >mysql教程

    mysql group by having 使用实例

    2016-06-01 09:58:24原创560
    注意:使用group by的时候,SELECT子句中的列名必须为分组列。 如下实例必须包括name列名,因为name是作为group by分组的条件。

    实例:

    我的数据库中有一张员工工作记录表,表中的数据库如下:

    mysql> SELECT * FROM employee_tbl;
    +------+------+------------+--------------------+
    | id   | name | work_date  | daily_typing_pages |
    +------+------+------------+--------------------+
    |    1 | John | 2007-01-24 |                250 |
    |    2 | Ram  | 2007-05-27 |                220 |
    |    3 | Jack | 2007-05-06 |                170 |
    |    3 | Jack | 2007-04-06 |                100 |
    |    4 | Jill | 2007-04-06 |                220 |
    |    5 | Zara | 2007-06-06 |                300 |
    |    5 | Zara | 2007-02-06 |                350 |
    +------+------+------------+--------------------+
    7 rows in set (0.00 sec)

    需求一:现在我需要查找出每个员工工作了多少天,这时就需要用到group by语句:

    mysql> SELECT name, COUNT(*)
        -> FROM   employee_tbl 
        -> GROUP BY name;
    +------+----------+
    | name | COUNT(*) |
    +------+----------+
    | Jack |        2 |
    | Jill |        1 |
    | John |        1 |
    | Ram  |        1 |
    | Zara |        2 |
    +------+----------+
    5 rows in set (0.04 sec)

    需求二:我现在要查找工作天数大于一天的所有员工,这个时候就需要用到group by having语句

    mysql> SELECT name, COUNT(*)
        -> FROM   employee_tbl 
        -> GROUP BY name having COUNT(*)>1 ;
    +------+----------+
    | name | COUNT(*) |
    +------+----------+
    | Jack |        2 |
    | Zara |        2 |
    +------+----------+
    2 rows in set (0.04 sec)
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:group by having 分组
    上一篇:MySQL Slave延迟优化的方法 下一篇:mysql 获取系统当前日期(年月日时分秒)
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 如何用好MySQL索引?你必须了解这些事!• 一起来聊聊数据库拉链表• mysql有触发器吗• mysql怎么修改存储引擎为innodb• mysql索引的查询语句是什么
    1/1

    PHP中文网