# 分组查询
--group by 非聚合字段
select grade_id,count(*) from student group by grade_id; --每个年级各多少?
--套路:group by...根据count(*)前面的字段分组,想想场景结果,根据什么分组
select dept_id,count(*) from s_emp group by dept_id; --查询每部门人数
--查询每门课程的平均分
select subjectid,avg(stdentresult) from result group by subjectid order by studentresult;
--统计每学期男女同学的人数? --先年级分组,后男女分组
select gradeid,sex,count(*) from student group by gradeid,sex order by gradeid; --多列分组
# having
--统计每个年级的人数,低于18人不显示
---对分组之后的数据,再次进行条件过滤的话,不能用where,要用having.
select gradeid,count(*) from student group by gradeid having count(*)>18;
--统计每个部门的最高工资,部门人数低于3人不显示
select dept_id,max(salary) from s_emp group by dept_id having count(*)>2;
---统计每个部门中工资高于1400的人数,低于2人的不显示
select dept_id,count(*) from s_emp where salary >1400 group by dept_id having count(*) >1;