(转载)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 关键字与普通字符而引入的符号:一般,表名与字段名都使用反引号.
随机推荐
- android检查自动升级
好像大半年没发点啥了,也不知道自己瞎忙啥,闲下来发给最近的东东<安卓在线升级> 类已经封装好了,简单的调用就OK了.这里的数据交互,我是用.NET写的一个webservice来交互.废话也 ...
- 原生js日期时间插件鼠标点击文本框弹出日期时间表格选择日期时间
原文出处 (这是我从互联网上搜来的,感觉能满足各方面的需求.个人感觉挺不错的,所以后期修改了一下向大家推荐!) 效果图: html代码: <!DOCTYPE html PUBLIC " ...
- CSS相对定位、绝对定位
CSS定位属性:position. 定位的基本思想:定义元素框相对于其正常位置应该出现的位置,或者相对于父元素.另一个元素或浏览器窗口本身的位置. position属性值:static.relativ ...
- sql中对查询出来的数据进行分页
当sql中存储的数据量比较大时,在web中 数据显示时都会对数据进行分页,分页不会在客户端进行分页,而是在数据库查询过程中进行了分页. sql代码: DECLARE @pageindex INT; - ...
- BUG Error:Execution failed for task ':app:dexDebug'.
Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessExceptio ...
- mysql - 查看Port
show global variables like 'port';
- SQL2008安装提示"Microsoft visual studio 2008早期之前的版本"解决(这是我认为最简单有效的方法)
作者:冰封 日期:2013-10-18 原文地址:http://www.skywj.com/thread-9230-1-1.html 在安装SQL Server的时候提示 Microsoft visu ...
- iOS:iOS开发中用户密码保存位置
原文来自简书:http://www.jianshu.com/p/4af3b8179136/comments/1294203 如果要实现自动登录,不必每次打开应用都去登录,我们势必要把密码保存到本地.一 ...
- C#有关 字符串方法的使用
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- 【html】【0】开始的序言
人生总得做点什么才显得有意义,在牛逼的梦想也抵挡不住你傻逼似的坚持! 1>本系列适用于没有任何计算机语言基础的小白入门级教程 2>为了我喜欢的一个女生小娜娜 3>为自己系统的学习ht ...