mysql group实例_MySQL Group By 实例讲解(二)

本文详细介绍了MySQL中的GROUP BY语句的使用方法,包括单字段分组、多字段分组以及与聚合函数的结合使用。通过实例展示了如何根据city和last_name字段进行分组,以及如何通过HAVING子句筛选分组后的特定条件。同时,文章还提到了GROUP BY在实际查询中的注意事项。
摘要由CSDN通过智能技术生成

mysql group by使用方法实例讲解

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

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

现在有这样一个数据表 book

d29f1c22cf1442a39ef9b1ec40cebe18.png

group by基本实例

我们对city字段进行分组查询

SELECT * FROM book GROUP BY city

结果如下:

c2420b5e306c2578735a015403754a19.png

可以看出,group by是根据city来进行分组的,因为book表中有三个不同的city值,所以会出现三行数据,并且相同的city只返回结果集中的第一条数据。

3a2cc621d572e9eebaa720cd6004614c.png

group by多个字段

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

SELECT * FROM book GROUP BY city,last_name

结果如下:

89fa7f170f00d4b41fd03daf7c20341d.png

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

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

b44be7cb81abf59dc4b8b7859389afc5.png

group by与聚合函数

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

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

SELECT *,count(*) FROM book GROUP BY city

结果为:

3bd78bd763e0ba38968795d4d1cfd849.png

group by having

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

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

SELECT *,count(*) FROM book GROUP BY city having count(*)>1

结果集为:

6152a6d574d69689c0260f9fea54a307.png

在原文基础上有改动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值