https://blog.csdn.net/qq_44690947/article/details/109133592

前言

国庆之间在进行一个消费项目切换时,发现用之前SQL语句导出的余额与客户人员最近消费记录所显示的余额不一致,客户人员又比较多,还好及时发现没凉成大错!现在来记录一下。

一 GROUP BY的简单介绍

GROUP BY顾名思义,group: 分组,by: 以…; 组合起中来就是以什么来分组。在mysql理解为以一个字段或多个字段来分组显示结果集,如下。

数据表

https://i-blog.csdnimg.cn/blog_migrate/32b3bbcb84d594e8da3cc843c7d0c1d0.png#pic_center

执行以下语句

select *
from sc
group by sid

结果如下

https://i-blog.csdnimg.cn/blog_migrate/8a47b1ac1a378442efbc0e0d95654697.png#pic_center

结果以sid分组表示出来了,细心一点会发现分组后显示的记录是分组前第一条sid对应的值,执行以下语句可以观察到,如下。

SELECT *,GROUP_CONCAT(score)
FROM sc
GROUP BY sid;

https://i-blog.csdnimg.cn/blog_migrate/dbd8423cfab41b11e346a6bc175cb044.png#pic_center

二 MAX()的简单介绍

MAX()是mysql里面的一个聚合函数,用来取最大值的,如下。

SELECT MAX(score)
FROM sc;

https://i-blog.csdnimg.cn/blog_migrate/320904aa120b9884ec386aa03cb1fad6.png#pic_center

三 group by与max()一起使用