MYSQL学习笔记8: DQL分组查询(group by)
DQL分组查询(group by)
语法
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where和having的区别
-
执行时机不同: where是在分组之前进行过滤,不满足where条件,不参与分组; having是分组之后对结果进行过滤
-
判断条件不同:where不能对聚合函数进行判断,having可以
根据员工性别分组, 统计男女员工数量
select gender, count(*) from workers group by gender;
根据性别分组,并统计平均年龄
select gender, avg(age) from workers group by gender;
查询年龄>45的员工, 并按入职日期分组, 获取员工数量>=2的入职日期
select entryDate, count(*) dateCount from workers where age>45 group by entryDate #分组后过滤 having dateCount>=2;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步