前言:同学们我是新进博主可能会有哪些地方编写的不太好,以至于你们不太理解的,可以在下方评论或私信我,我会尽力解答的
语法:
select 字段列表 from 表名 【where 条件】group by 分组字段 【having 分组后过滤条件】;
where与having的区别:
①执行时机不同:where是分组之前进行过滤,不满足where条件的不参与分组,而having是分组后对结果进行过滤
②判断条件不同:where不能对聚合函数进行判断,而having可以
列题:
有以下表格,关于表格有以下三题:
①根据性别分组统计男性员工数量和女性员工数量:
select count(*)from emp group by gender; //这样只有数量没有性别
select gender,count(*)from emp group by gender; //加上gender我们就可以看到性别啦
②根据性别分组统计男性员工和女性员工的平均年龄
select gender,avg(age) from emp group by gender ;
③调查年龄小于45岁的员工,并且根据工作地址分组,获得员工数量大于等于3的工作地址
select place,count(*) from emp where age<45 group by place ;
要想统计工作地址大于等于3还要添加having语句
select place,count(*) from emp where age<45 group by place having count(*)>=3 ;