DQL分组查询

发布时间 2023-04-03 21:17:09作者: 惊鸿宴远赴人间

DQL分组查询:
1.语法:select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where和having的区别:
执行时机不同:where是分组之前进行过滤,不满足wehere条件,不参与分组;而having是分组之后对结果进行过滤
判断条件不同:where不能对聚合函数进行判断,而having可以

注意:
执行顺序:where>聚合函数>having
分组之后,查询的字段一般为聚合函数和分组的字段,查询其他字段毫无意义

 

代码:

select sex,count(*) from emp group by sex;/*根据性别分组,统计男员工和女员工的数量 */
select sex,avg(age) from emp group by sex;/*根据性别分组,统计男员工和女员工的平均年龄 */
select idcard,count(*) as idCount from emp where age<18 group by idcard having idCount>=3;/*查询年龄小于18的员工,并根据idcard分组,获取员工数量大于等于3的idcard */