(转载)MySQL关键字GROUP BY的使用
例子:
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的使用的更多相关文章
- Mysql关键字之Group By(一)
原文地址,优先更新https://hhe0.github.io group by 是一个我们在日常工作学习过程中经常遇到的一个Mysql关键字.现总结其用法如下,内容会不断补充,出现错误欢迎批评指正. ...
- Mysql关键字之Group By(二)
原文地址,优先更新https://hhe0.github.io 我们在上一节简单介绍了Mysql中group by关键字的用法,没有看过的同学点击这里了解一下; 文中提到的courses表和相关记录可 ...
- MySQL关键字
MySQL关键字 ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL ...
- mysql 关键字于数据库字段于关键字冲突的问题
如果数据库存储字段 为MySQL关键字,那么在查询或者其他操作时会出错.那么我们应该怎么办, 可能有些人会说,换个字段不就好了啊.当然这样也是可以的,完全没问题. 然而,如果是在无法对数据库进行修改和 ...
- MySQL优化GROUP BY-松散索引扫描与紧凑索引扫描
满足GROUP BY子句的最一般的方法是扫描整个表并创建一个新的临时表,表中每个组的所有行应为连续的,然后使用该临时表来找到组并应用累积函数(如果有).在某些情况中,MySQL能够做得更好,即通过索引 ...
- MySQL字段命名不能使用的MySQL关键字
#今天遇到一个问题,把某一字段重新命名为condition时报错,于是联想到可能是MySQL的关键字,用``引起来后,问题解决. #在MySQL数据库中,Table字段不能使用MySQL关键字: #[ ...
- 转:深入研究mysql中group by与order by取分类最新时间内容
鉴于项目的需要,就从网上找到该文章,文章分析得很详细也很易懂,在android里, (不知道是不是现在水平的限制,总之我还没找到在用ContentProvider时可以使用子查询),主要方法是用SQL ...
- [转载]mysql的binlog安全删除
[转载]mysql的binlog安全删除 理论上,应该在配置文件/etc/my.cnf中加上binlog过期时间的配置项,expire_logs_days = 10 但是如果没有加这一项,随着产生越 ...
- MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号;一般,表名与字段名都使用反引号。
MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号:一般,表名与字段名都使用反引号.
随机推荐
- [转]eclipse github 提交代码
1 git add2 git commit3 git pull (会产生冲突) 分成自动合并和手动合并4 处理冲突的文件 5 git push 本次commit 我用的是Eclipse的插件EGit ...
- Android工程师必会做的20道题
一.单选题 (共7道题,每题5分) 1.使用AIDL完成远程service方法调用下列说法不正确的是 A.aidl对应的接口名称不能与aidl文件名相同 B.aidl的文件的内容类似java代 ...
- 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 ...
- Android Studio 中解决.9图片报错的问题
- 解决WEB(apache)服务器time_wait过高的性能优化过程
目录 1.网站的硬件环境 2.修改Httpd.conf 3.修改sysctl.conf文件 一.网站环境LAMP硬件环境 [root@www conf]# dmidecode -s processor ...
- ubuntu chm文档阅读
四种方法在Ubuntu下查看CHM文件 来源:http://os.51cto.com/art/201108/287748.htm Ubuntu是一个以桌面应用为主的Linux操作系统,刚开始使用Ubu ...
- mac+eclipse+svn+maven经验总结(转)
1.Eclipse for Mac:http://mirrors.ustc.edu.cn/eclipse/technology/epp/downloads/release/indigo/SR2/ecl ...
- 学习Swift -- 协议(下)
协议(下) 在拓展中添加协议成员 通过扩展使得Dice类型遵循了一个新的协议,这和Dice类型在定义的时候声明为遵循TextRepresentable协议的效果相同.在扩展的时候,协议名称写在类型名之 ...
- Java实现Http服务器(二)
上节讲到的JDK自带的HttpServer组件,实现方法大概有三十个类构成,下面尝试着理解下实现思路. 由于Java的source代码中有很多注释,粘贴上来看着费劲,自己写个程序消除注释. impor ...
- iOS:等待控件
定义: @interface ViewController () { UIActivityIndicatorView *testActivityIndicator; } 实例化,开始旋转: -(voi ...