分组查询
公式:select 字段列表 from 表名 【where 分组前的条件】 group by 分组字段名 【having 分组之后的查询条件 】
注意: 分组之后 查询字段 只能写 分组字段名 或者 聚合函数 ,写其他字段没有意义
where 和having 的区别: where 是在分组前 进行条件限定 不满足条件的不参与 分组,having 是在分组之后的结果进行过滤; where 中不能对聚合函数 (sum,count这种)进行判断,而having 可以
执行顺序: where>聚合函数>having
比如 查询班级表中 男同学和女同学的 数学平均成绩
select sex, avg(math) from stu group by sex;
查询 班级男女同学 数学平均成绩 并计算 总人数
select sex,avg(math),count(*)from stu group by sex;
------------------------------------------------------------成绩低于70分的 不参与 分组,所以使用where 在分组前进行条件限定
select sex ,avg(math),count(*) from stu where math>70 group by sex;
-------------------------------------------------------------------------------------------------,总人数要大于2
select sex ,avg(math),count(*) from stu where math>70 group by sex having count(*)>2;
标签:sex,分组,dql,查询,where,having,math From: https://www.cnblogs.com/y-258/p/16796526.html