MySQL中使用group by分组查询
group by 表示根据指定字段进行分组查询
1.什么时候使用group by?
group by 一般是和聚合函数一起使用的
ps:常用聚合函数
count() 计数 sum() 求和 avg() 平均数 max() 最大值 min() 最小值
2.筛选结果使用where和group by ,表示先执行where条件筛选后再进行分组
注意:where语句中不能使用聚合函数
SQL语句的执行顺序是:
from-->where-->group by -->having --> select--- >order by;
首先我们知道像SUM()、AVG()、MAX()等等的聚合函数,是对结果进行筛选的,在FROM之后,我们只得到这张表,如果对这张表进行聚合筛选后,那么接下来的GROUP BY该怎么办呢?GROUP BY是对表进行分组的,但是你都已经WHERE筛选完了,还怎么分组,所以矛盾,所以不能在WHERE中使用聚合函数!
聚集函数也叫列函数,它们都是基于整列数据进行计算的,而where子句则是对数据行进行过滤的,在筛选过程中依赖“基于已经筛选完毕的数据得出的计算结果”是一种悖论,这是行不通的。更简单地说,因为聚集函数要对全列数据时行计算,因而使用它的前提是:结果集已经确定!
3.筛选结果先用group by和having,表示having是对group by分组结果进行筛选
4.group by可以使用多个字段分组
分类:
MySQL
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix