当前位置:首页 > 数据库 > MySQL分组查询group by实例

MySQL分组查询group by实例

2022年09月17日 14:41:13数据库10

group by使用方法实例讲解
MySQL中GROUP BY语句用于对某个或某些字段查询分组,并返回这个字段重复记录的第一条,也就是每个小组(无排序)里面的第一条。

本文章通过实例向大家介绍mysql group by使用方法和需要注意的地方,感兴趣的朋友可以参考一下。

现在有这样一个数据表 book
MySQL分组查询group by实例 _ JavaClub全栈架构师技术笔记

group by基本实例
我们对city字段进行分组查询

SELECT * FROM book GROUP BY city
结果如下:
MySQL分组查询group by实例 _ JavaClub全栈架构师技术笔记

可以看出,group by是根据city来进行分组的,因为book表中有三个不同的city值,所以会出现三行数据,并且相同的city只返回结果集中的第一条数据。
MySQL分组查询group by实例 _ JavaClub全栈架构师技术笔记

group by多个字段
下面来看一下group by后面跟多个字段

SELECT * FROM book GROUP BY city,last_name
结果如下:
MySQL分组查询group by实例 _ JavaClub全栈架构师技术笔记

group by后面跟多个字段如何理解呢?

GROUP BY city, last_name是指所有city, last_name项只要有一个不相同就会分一个组的。因为上面book表中第二行数据与第三行数据的city和last_name相同,所以会舍弃其中的一行数据,一般都是舍弃后面一行,所以第二行数据保留了。如下图(先进行city分组如红色,在进行last_name分组如蓝色,然后都取第一条数据):

MySQL分组查询group by实例 _ JavaClub全栈架构师技术笔记

group by与聚合函数
一般情况下,group by都会与聚合函数一起使用,以达到复杂的数据查询要求。

比如我们要根据city分组后,获取每一组有多少条数据

SELECT ,count() FROM book GROUP BY city
结果为:

MySQL分组查询group by实例 _ JavaClub全栈架构师技术笔记

group by having
group by having用于指示被选择的行必须满足的条件

比如,我们根据city分组,但我们只需要查询出每一组的数据条数大于1的。

SELECT ,count() FROM book GROUP BY city having count(*)>1
结果集为:

MySQL分组查询group by实例 _ JavaClub全栈架构师技术笔记

作者:杰少2020
来源链接:https://blog.csdn.net/yj19880214/article/details/107295170

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/database/42726.html

标签: group by
分享给朋友:

“MySQL分组查询group by实例” 的相关文章

mysql查询语句 groupby后取组内时间最近的一条数据时间

mysql查询语句 groupby后取组内时间最近的一条数据时间

在mysql中使用group by进行分组后取时间最近的一条数据,我们可以直接使用MAX()函数来实现 SELECT T2.nick_name as nickName, count(T1.shared_user_id) AS...

mysql o by

mysql o by

原文:https://blog.csdn.net/u014717572/article/details/80687042 先来看下表1,表名为test: 表1 执行如下SQL语句: SELECT name FRO...

MySQL的分组查询group by

group by (1)、group by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组。 (2)、group by可用于单字段分组,也可用于多个字段分组。 复制代码select * from employee; +----...

mysql分组查询教程

在 MySQL 中,GROUP BY 关键字可以根据一个或多个字段对查询结果进行分组。 使用 GROUP BY 关键字的语法格式如下: GROUP BY ,, ... ... 其中,“字段名”表示需要分组的字段名称,多个字段时用逗号隔开...

oracle group by执行慢,一次对group by时间导致的慢查询的优化

oracle group by执行慢,一次对group by时间导致的慢查询的优化

前言: 最近在测试环境中点击一个图表展示页面时,半天才得到后台响应的数据进行页面渲染展示,后台的响应很慢,这样极大的降低了用户的体验; 发现这个问题后马上进行了排查 ,通过排查发现是由一个查询很慢的 group by 语句导致的; 本文...

SQL: select非group by的字段

使用group by查找或删除重复行,请参考    SQL:查找或删除重复行 在含有Group by子句的查询语句中,对select关键字后的目标列,存在以下规律 使用group by 时,select 涉及的列要么是参...

mysql group 遍历

原创: 管长龙 译作者:Peter Zaitsev 在日常查询中,索引或其他数据查找的方法可能不是查询执行中最高昂的部分,例如:MySQL GROUP BY 可能负责查询执行时间 90% 还多。MySQL 执行 GROUP BY 时的主要复杂性是计算 GROUP...

mysql rollup语法

MySQL GROUP BY 语句 GROUP BY 语句根据一个或多个列对结果集进行分组。 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。 GROUP BY 语法 SELECT column_name, functi...

MySQL:先进行子查询排序再group by,但排序失效问题的解决办法

问题描述 使用如下sql,先在子查询中进行order by排序,再对查询结果进行group by分组,但查到的结果并没有正确排序。 MySQL版本为5.7。...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。