例子:

mysql> select * from employee;
+------+------+-------+------+-------+----------+
| num | d_id | name | age | sex | homeaddr |
+------+------+-------+------+-------+----------+
| 1 | 1001 | jack | 26 | man | beijing |
| 2 | 1001 | mike | 25 | man | nanjing |
| 3 | 1003 | alex | 24 | man | nanchang |
| 4 | 1004 | rose | 14 | woman | england |
| 5 | 1001 | robot | 20 | man | zhuhai |
+------+------+-------+------+-------+----------+
5 rows in set (0.00 sec) // 这里采取按照不同的年龄进行分组,当然也可以按照不同的地区分组
mysql> select * from employee group by sex;
+------+------+------+------+-------+----------+
| num | d_id | name | age | sex | homeaddr |
+------+------+------+------+-------+----------+
| 1 | 1001 | jack | 26 | man | beijing |
| 4 | 1004 | rose | 14 | woman | england |
+------+------+------+------+-------+----------+
2 rows in set (0.00 sec) mysql> mysql> select sex, GROUP_CONCAT(name) from employee group by sex;
+-------+----------------------+
| sex | GROUP_CONCAT(name) |
+-------+----------------------+
| man | jack,mike,alex,robot |
| woman | rose |
+-------+----------------------+
2 rows in set (0.05 sec) mysql> // 统计男、女分组中,每组的人数
mysql> select sex, count(sex) from employee group by sex;
+-------+------------+
| sex | count(sex) |
+-------+------------+
| man | 4 |
| woman | 1 |
+-------+------------+
2 rows in set (0.00 sec) // 找出分组中个数>=的分组
mysql> select sex, count(sex) from employee group by sex HAVING COUNT(sex) >= 3; +------+------------+
| sex | count(sex) |
+------+------------+
| man | 4 |
+------+------------+
1 row in set (0.00 sec) mysql> // 根据d_id分组,当相同的分组中sex不同时,在进行分组
mysql> select * from employee group by d_id, sex;
+------+------+------+------+-------+----------+
| num | d_id | name | age | sex | homeaddr |
+------+------+------+------+-------+----------+
| 1 | 1001 | jack | 26 | man | beijing |
| 3 | 1003 | alex | 24 | man | nanchang |
| 4 | 1004 | rose | 14 | woman | england |
+------+------+------+------+-------+----------+
3 rows in set (0.00 sec) mysql> select * from employee;
+------+------+-------+------+-------+----------+
| num | d_id | name | age | sex | homeaddr |
+------+------+-------+------+-------+----------+
| 1 | 1001 | jack | 26 | man | beijing |
| 2 | 1001 | mike | 25 | man | nanjing |
| 3 | 1003 | alex | 24 | man | nanchang |
| 4 | 1004 | rose | 14 | woman | england |
| 5 | 1001 | robot | 20 | man | zhuhai |
+------+------+-------+------+-------+----------+
5 rows in set (0.00 sec) mysql> insert into employee values(6, 1001, 'nick', 33, 'woman', 'shenzhen');
Query OK, 1 row affected (0.00 sec) mysql> select * from employee;
+------+------+-------+------+-------+----------+
| num | d_id | name | age | sex | homeaddr |
+------+------+-------+------+-------+----------+
| 1 | 1001 | jack | 26 | man | beijing |
| 2 | 1001 | mike | 25 | man | nanjing |
| 3 | 1003 | alex | 24 | man | nanchang |
| 4 | 1004 | rose | 14 | woman | england |
| 5 | 1001 | robot | 20 | man | zhuhai |
| 6 | 1001 | nick | 33 | woman | shenzhen |
+------+------+-------+------+-------+----------+
6 rows in set (0.00 sec) // 从这里看到,当执行d_id分组时,若遇到相同的值,
则进行sex分组。
mysql> select * from employee group by d_id, sex;
+------+------+------+------+-------+----------+
| num | d_id | name | age | sex | homeaddr |
+------+------+------+------+-------+----------+
| 1 | 1001 | jack | 26 | man | beijing |
| 6 | 1001 | nick | 33 | woman | shenzhen |
| 3 | 1003 | alex | 24 | man | nanchang |
| 4 | 1004 | rose | 14 | woman | england |
+------+------+------+------+-------+----------+
4 rows in set (0.00 sec) mysql> // 将所有分组的综合相加
mysql> select sex, COUNT(sex) from employee group by sex with rollup;
+-------+------------+
| sex | COUNT(sex) |
+-------+------------+
| man | 4 |
| woman | 2 |
| NULL | 6 |
+-------+------------+
3 rows in set (0.00 sec) mysql>

(转载)MySQL关键字GROUP BY的使用的更多相关文章

  1. Mysql关键字之Group By(一)

    原文地址,优先更新https://hhe0.github.io group by 是一个我们在日常工作学习过程中经常遇到的一个Mysql关键字.现总结其用法如下,内容会不断补充,出现错误欢迎批评指正. ...

  2. Mysql关键字之Group By(二)

    原文地址,优先更新https://hhe0.github.io 我们在上一节简单介绍了Mysql中group by关键字的用法,没有看过的同学点击这里了解一下; 文中提到的courses表和相关记录可 ...

  3. MySQL关键字

    MySQL关键字 ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL ...

  4. mysql 关键字于数据库字段于关键字冲突的问题

    如果数据库存储字段 为MySQL关键字,那么在查询或者其他操作时会出错.那么我们应该怎么办, 可能有些人会说,换个字段不就好了啊.当然这样也是可以的,完全没问题. 然而,如果是在无法对数据库进行修改和 ...

  5. MySQL优化GROUP BY-松散索引扫描与紧凑索引扫描

    满足GROUP BY子句的最一般的方法是扫描整个表并创建一个新的临时表,表中每个组的所有行应为连续的,然后使用该临时表来找到组并应用累积函数(如果有).在某些情况中,MySQL能够做得更好,即通过索引 ...

  6. MySQL字段命名不能使用的MySQL关键字

    #今天遇到一个问题,把某一字段重新命名为condition时报错,于是联想到可能是MySQL的关键字,用``引起来后,问题解决. #在MySQL数据库中,Table字段不能使用MySQL关键字: #[ ...

  7. 转:深入研究mysql中group by与order by取分类最新时间内容

    鉴于项目的需要,就从网上找到该文章,文章分析得很详细也很易懂,在android里, (不知道是不是现在水平的限制,总之我还没找到在用ContentProvider时可以使用子查询),主要方法是用SQL ...

  8. [转载]mysql的binlog安全删除

    [转载]mysql的binlog安全删除  理论上,应该在配置文件/etc/my.cnf中加上binlog过期时间的配置项,expire_logs_days = 10 但是如果没有加这一项,随着产生越 ...

  9. MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号;一般,表名与字段名都使用反引号。

    MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号:一般,表名与字段名都使用反引号.

随机推荐

  1. CSS画三角形引发的一些思考

      今天刷知乎时看到了一个问题,有谁能详细讲一下css如何画出一个三角形?怎么想都想不懂? - 知乎.很巧,刚入前端坑的我前不久也遇到过这个问题,今天再来谈一谈这个问题则是因为知乎的一些答案引发了我的 ...

  2. (转)Apache2 httpd.conf 配置详解 (二)

    转之--http://jafy00.blog.51cto.com/2594646/508205 DocumentRoot "/usr/local/apache-2.2.6/htdocs&qu ...

  3. 黑马程序员- IO(Input- Output)(一)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- API包: Java.io.* 缘来: java通过操作数据对象是通过流的方式来创建的 作用: ...

  4. sql - 查询所有表中包含指定值

    可以直接创建sql语句: CREATE TABLE qResults (tName nvarchar(370), cname nvarchar(3630),[count] int) declare @ ...

  5. js原型解析

    我们都知道javascript因为具有了继承以及变量等等一系列的特性之后才被人们认为具有一门编程语言的资格,在后续的不断发展中,js在原生的基础上扩展了基于jquery等等的库,甚至衍生了像node. ...

  6. 理解Javascript__undefined和null

    在 ECMAScript 的原始类型中,是有Undefined 和 Null 类型的. 这两种类型都分别对应了属于自己的唯一专用值,即undefined 和 null. alert(undefined ...

  7. highcharts时间图

    这篇文章适合对highcharts已经有一定了解的猿友. 前两天想用highcharts做一个时间图,但是时间轴(x轴)的时间坐标并不是等间隔的,之前一直采用的方法是把时间做成等间隔的,然后没有数据的 ...

  8. time返回当前的 Unix 时间戳而$_SERVER["REQUEST_TIME"]得到请求开始时的时间戳

    time():返回当前的 Unix 时间戳 $_SERVER["REQUEST_TIME"]:得到请求开始时的时间戳,可以用来判断完成整个php处理的时间

  9. linux无法umount解决方案

    [root@995120-master ~]# umount /drbd/ umount: /drbd: device is busy.(In some cases useful info about ...

  10. python中的buildin函数详解(第一篇)

    这会是很长的一个帖子,因为我打算从python最基础的东西开始,尝试去完全的掌握它,buildin中有一些常用的函数比如 abs, open, setattr, getattr, 大家都很了解他们的用 ...