DQL-聚合函数和DQL-分组查询

DQL-聚合函数

将一列数据作为一个整体,进行纵向的计算。

1.count:计算个数

  一般选择非空的列:主键

  count(*)

2.max:计算最大值

3.min:计算最小值

4.sum:计算和

5.avg:计算平均值

注意:聚合函数的计算,排除null值。

  解决方案:

    选择不包含非空的列进行计算

SELECT COUNT(english) FROM student;
SELECT COUNT(IFNULL(english,0)) FROM student;
SELECT COUNT(id) FROM student;

-- 数学成绩的最大和最小
SELECT MAX(math) FROM student;

SELECT MIN(math) FROM student;

-- 求和
-- 数学成绩的和
SELECT SUM(math) FROM student;

-- 求平均值
SELECT AVG(math) FROM student;

DQL-分组查询

1.语法:group by 分组字段;

2.注意:

  分组之后查询的字段:分组字段、聚合函数

  where和having的区别:

    where在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来

    where后不可以跟聚合函数,having可以进行聚合函数的判断

- -  按照性别分组,分别查询男、女同学的平均分

SELECT sex,AVG(math) FROM student GROUP BY sex;

 - - 按照性别分组,分别查询男、女同学的平均分,人数

SELECT sex,AVG(math),COUNT(id) FROM student GROUP BY sex;

  - - 按照性别分组,分别查询男、女同学的平均分,人数  要求:分数低于70分的人,不参与分组

SELECT sex,AVG(math),COUNT(id) FROM student WHERE math>70 GROUP BY sex;

 - - 按照性别分组,分别查询男、女同学的平均分,人数  要求:分数低于70分的人,不参与分组,分组之后,人数要大于2个人

SELECT sex,AVG(math),COUNT(id) FROM student WHERE math>70 GROUP BY sex HAVING COUNT(id)>2;

posted @ 2022-09-29 10:38  肥宅快乐水~  阅读(36)  评论(0编辑  收藏  举报