mysql group by使用方法实例讲解
时间:2016-06-24
MySQL中GROUP BY语句用于对某个或某些字段查询分组,并返回重复记录的第一条,本文章通过实例向大家介绍mysql group by使用方法和需要注意的地方,感兴趣的朋友可以参考一下。
现在有这样一个数据表book
id | first_name | last_name | city | age |
1 | Jason | Martin | Toronto | 15 |
2 | Alison | Mathews | Vancouver | 16 |
3 | James | Mathews | Vancouver | 14 |
4 | Celia | Rice | Vancouver | 14 |
5 | David | Larry | New York | 16 |
group by基本实例
我们对city字段进行分组查询
SELECT * FROM book GROUP BY city
结果如下:
id | first_name | last_name | city | age |
1 | Jason | Martin | Toronto | 15 |
2 | Alison | Mathews | Vancouver | 16 |
5 | David | Larry | New York | 16 |
可以看出,group by是根据city来进行分组的,因为book表中有三个不同的city值,所以会出现三行数据,并且相同的city只返回结果集中的第一条数据。
group by多个字段
下面来看一下group by后面跟多个字段
SELECT * FROM book GROUP BY city,last_name
结果如下:
id | first_name | last_name | city | age |
1 | Jason | Martin | Toronto | 15 |
2 | Alison | Mathews | Vancouver | 16 |
4 | Celia | Rice | Vancouver | 14 |
5 | David | Larry | New York | 16 |
group by后面跟多个字段如何理解呢?GROUP BY city,last_name是指所有city,last_name项只要有一个不相同就会分一个组的。因为上面book表中第二行数据与第三行数据的city和last_name相同,所以会舍弃其中的一行数据,一般都是舍弃后面一行,所以第二行数据保留了。
group by与聚合函数
一般情况下,group by都会与聚合函数一起使用,以达到复杂的数据查询要求。
比如我们要根据city分组后,获取每一组有多少条数据
SELECT *,count(*) FROM book GROUP BY city
结果为:
id | first_name | last_name | city | age | count(*) |
1 | Jason | Martin | Toronto | 15 | 1 |
2 | Alison | Mathews | Vancouver | 16 | 3 |
5 | David | Larry | New York | 16 | 1 |
group by having
group by having用于指示被选择的行必须满足的条件
比如,我们根据city分组,但我们只需要查询出每一组的数据条数大于1的。
SELECT *,count(*) FROM book GROUP BY city having count(*)>1
结果集为:
id | first_name | last_name | city | age | count(*) |
2 | Alison | Mathews | Vancouver | 16 | 3 |
- Hadoop旧mapreduce的map任务切分原理
- 解读Neo4j全新的Python驱动程序
- MySQL 5.7 X Plugin:流水线技术vs.并行查询技术
- 在下函数式编程,有何贵干?
- 基于Keras/Python的深度学习模型Dropout正则项
- 揭秘深度强化学习
- Swoole-2.0.1-Alpha 已发布,提供PHP原生协程支持
- Google核心技术之——PageRank算法scala实现
- 代码审查拯救世界?
- Kafka实战:从RDBMS到Hadoop,七步实现实时传输
- Apache NiFi 1.0.0测试版:邮件路由应用新型ListenSMTP
- 为什么我坚持使用 JavaScript 函数声明
- NewSQL数据库大对象块存储原理与应用
- 使用xUnit为.net core程序进行单元测试(下2)
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解