例子:

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. JavaScript入门(1)

    一.JS基本 1.JS代码位置 <script type="text/javascript">表示: <script></script>之间是文 ...

  2. 29、Jquery Ajax

    Ajax Asynchronsous Javascript and XML(异步Javascript和XML). Ajax 是一种无需重新加载整个页面的情况下,更新局部页面的技术. 不是指一种单一的技 ...

  3. 学习完毕-css

    最近零零散散学习了css 最后附带链接,里面有css的全部demo.有空的可以练习练习,下一步 --->js -----http://www.w3cschool.cc/css/css-examp ...

  4. Spring各种传播特性源码实现的概览

    这几天都在分析Spring的源码实现,看到事务管理的部分 我们知道事务的传播特性有下面几种,我标黄的就是最常用的3中传播特性, Sping在发生事务嵌套的时候,会依据内层事务的传播特性,来决定内层是事 ...

  5. 线性布局LinearLayout和相对布局RelativeLayout 之间的比较

    LinearLayout和RelativeLayout之间: 共有属性:java代码中通过btn1关联次控件android:id="@+id/btn1" 控件宽度android:l ...

  6. SQL Prompt Snippet Manager 妙用

    SQL Prompt有一个很好用的工具叫Snippet Manager,SQL脚本片段管理器. 使用它可以快速的键入一段脚本,如输入ii+Tab,即可变成INSERT INTO 同理,我们可以定义一些 ...

  7. T-SQL中的透视和逆透视

    透视 今天抽一点时间来看看透视和逆透视语句,简单的说就是行列转换.假设一个销售表中存放着产品号,产品折扣,产品价格三个列,每一种产品号可能有多种折扣,每一种折扣只对应一个产品价格.下面贴出建表语句和插 ...

  8. js文件缓存之版本管理

    以前也做过不少项目,但从来就没有把关注的目光投向过js文件缓存.最近终于在毫无意识的情况下跳进了这个大坑. 近几个月来的工作是一个交易系统持续改进项目,迭代发布周期大约为2~3周.最近一次迭代是V16 ...

  9. php 连接mysql数据库并显示数据 实例 转载

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  10. Qt XML的使用

    Qt中对于XML文件的写入有两种方式,一个是使用QXmlStreamWriter,另一个则为使用Dom.stream流的形式相对来说更加灵活,而且适合处理大文件.Dom方式由于是将内容加载到了内存中进 ...