例子:

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. [转]eclipse github 提交代码

    1 git add2 git commit3 git pull  (会产生冲突) 分成自动合并和手动合并4 处理冲突的文件 5 git push 本次commit 我用的是Eclipse的插件EGit ...

  2. Android工程师必会做的20道题

    一.单选题     (共7道题,每题5分) 1.使用AIDL完成远程service方法调用下列说法不正确的是 A.aidl对应的接口名称不能与aidl文件名相同 B.aidl的文件的内容类似java代 ...

  3. 237. Delete Node in a Linked List(C++)

    237. Delete Node in a Linked Lis t Write a function to delete a node (except the tail) in a singly l ...

  4. Android Studio 中解决.9图片报错的问题

  5. 解决WEB(apache)服务器time_wait过高的性能优化过程

    目录 1.网站的硬件环境 2.修改Httpd.conf 3.修改sysctl.conf文件 一.网站环境LAMP硬件环境 [root@www conf]# dmidecode -s processor ...

  6. ubuntu chm文档阅读

    四种方法在Ubuntu下查看CHM文件 来源:http://os.51cto.com/art/201108/287748.htm Ubuntu是一个以桌面应用为主的Linux操作系统,刚开始使用Ubu ...

  7. mac+eclipse+svn+maven经验总结(转)

    1.Eclipse for Mac:http://mirrors.ustc.edu.cn/eclipse/technology/epp/downloads/release/indigo/SR2/ecl ...

  8. 学习Swift -- 协议(下)

    协议(下) 在拓展中添加协议成员 通过扩展使得Dice类型遵循了一个新的协议,这和Dice类型在定义的时候声明为遵循TextRepresentable协议的效果相同.在扩展的时候,协议名称写在类型名之 ...

  9. Java实现Http服务器(二)

    上节讲到的JDK自带的HttpServer组件,实现方法大概有三十个类构成,下面尝试着理解下实现思路. 由于Java的source代码中有很多注释,粘贴上来看着费劲,自己写个程序消除注释. impor ...

  10. iOS:等待控件

    定义: @interface ViewController () { UIActivityIndicatorView *testActivityIndicator; } 实例化,开始旋转: -(voi ...