-- 分组之后查询的字段为:分组字段、聚合函数-- 按照性别分组、分别查询男、女同学的数学平均分,人数SELECT sex ,AVG(math),COUNT(id)FROM student3 GROUPBY sex;-- 按照性别分组、分别查询男、女同学的数学平均分,人数 -- 要求:分数低于70分的人,不参与分组SELECT sex ,AVG(math),COUNT(id)FROM student3 WHERE math >70GROUPBY sex;-- 按照性别分组、分别查询男、女同学的数学平均分,人数 -- 要求1:分数低于70分的人,不参与分组-- 要求2:分组之后,人数大于2人SELECT sex ,AVG(math),COUNT(id)FROM student3 WHERE math >70GROUPBY sex HAVINGCOUNT(id)>2;-- 起一个别名,简化代码SELECT sex ,AVG(math),COUNT(id) 人数 FROM student3 WHERE math >70GROUPBY sex HAVING 人数 >2;==总结:==where和having 的区别? (面试中常考)
1.where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来。
2.where 后不可以跟聚合函数(where后接普通的条件查询判断),having可以进行聚合函数的判断。
DQL查询语句Content:排序查询聚合查询分组查询分页查询1.排序查询 SELECT DATABASE(); SELECT * FROM student3; SELECT * FROM student3 ORDER BY math ASC; -- ASC :升序、默认(可省) SELECT * FROM student3 ORDER BY math DESC; ...