MySQL——高级查询(1)聚合函数

实际开发中,经常需要对某些数据进行统计,例如统计某个字段的最大值、最小值平均值等,为此,MySQL中提供了一些函数来实现这些功能,具体如下表所示。

|-------------|----------|
| 函数名称 | 作用 |
| COUNTOSUM() | 返回某列的行数 |
| SUM() | 返回某列值的和 |
| AVG() | 返回某列的平均值 |
| MAX() | 返回某列的最大值 |
| MIN() | 返回某列的最小值 |

表中的函数用于对一组值进行统计,并返回唯一值,这些函数被称为聚合函数,下面就对聚合函数的用法进行讲解。

1.COUNT()函数

COUNT()函数用来统计记录的条数,其语法格式如下所示:

sql 复制代码
SELECT COUNT(*) FROM 表名

使用上面的语法格式可以求出表中有多少条记录。

例如,查询 student 表中一共有多少条记录,SQL语句如下所示:

sql 复制代码
SELECT COUNT(*) FROM student;

执行结果如下所示:

sql 复制代码
mysql> SELECT COUNT(*) FROM student;
+----------+
| COUNT(*) |
+----------+
|        8 |
+----------+
1 row in set (0.01 sec)

从查询结果可以看出,student表中一共有8条记录

2.SUM()函数

SUM()是求和函数,用于求出表中某个字段所有值的总和,其语法格式如下:

sql 复制代码
SELECT SUM(字段名) FROM 表名;

使用上面的语句可以求出指定字段值的总和。

例如,求出 student 表中 grade字段的总和,SQL 语句如下所示:

sql 复制代码
SELECT SUM(grade) FROM student;

执行结果如下所示:

sql 复制代码
mysql> SELECT SUM(grade) FROM student;
+------------+
| SUM(grade) |
+------------+
|        652 |
+------------+
1 row in set (0.01 sec)

从查询结果可以看到,所有学生 grade 字段的总和为 652。

3.AVG()函数

AVG()函数用于求出某个字段所有值的平均值,其语法格式如下所示:

sql 复制代码
SELECT AVG(字段名) FROM student;

使用上面的语句可以求出指定字段所有值的平均值。

例如,求出 student 表中 grade 字段的平均值,SQL语句如下所示:

sql 复制代码
SELECT AVG(grade) FROM student;

执行结果如下所示:

sql 复制代码
mysql> SELECT AVG(grade) FROM student;
+------------+
| AVG(grade) |
+------------+
|       76.7 |
+------------+
1 row in set (0.00 sec)

从查询结果可以看到,所有学生 grade 字段的平均值为 81.5。

4. MAX()函数

MAX()函数是求最大值的函数,用于求出某个字段的最大值,其语法格式如下所示:

sql 复制代码
SELECT MAX(grade) FROM student;

例如,求出 student 表中所有学生 grade字段的最大值,SQL 语句如下所示:

sql 复制代码
mysql> SELECT MAX(grade) FROM student;
+------------+
| MAX(grade) |
+------------+
|        100 |
+------------+
1 row in set (0.01 sec)

从查询结果可以看到,所有学生 grade 字段的最大值为 100。

5.MIN()函数

MIN()函数是求最小值的函数,用于求出某个字段的最小值,其语法格式如下所示:

sql 复制代码
SELECT MIN(grade) FRoM student;

例如,求出 student 表中 grade 字段的最小值,SQL 语句如下所示:

sql 复制代码
mysql> SELECT MIN(grade) FRoM student;
+------------+
| MIN(grade) |
+------------+
|         40 |
+------------+
1 row in set (0.00 sec)

从查询结果可以看到,所有学生 grade 字段的最小值为 40。

相关推荐
阿华的代码王国28 分钟前
MySQL ------- 索引(B树B+树)
数据库·mysql
Hello.Reader1 小时前
StarRocks实时分析数据库的基础与应用
大数据·数据库
执键行天涯1 小时前
【经验帖】JAVA中同方法,两次调用Mybatis,一次更新,一次查询,同一事务,第一次修改对第二次的可见性如何
java·数据库·mybatis
liupenglove1 小时前
golang操作mysql利器-gorm
mysql·golang
yanglamei19621 小时前
基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue
前端·数据库·flask
叫我:松哥1 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
工作中的程序员2 小时前
ES 索引或索引模板
大数据·数据库·elasticsearch
严格格2 小时前
三范式,面试重点
数据库·面试·职场和发展
微刻时光2 小时前
Redis集群知识及实战
数据库·redis·笔记·学习·程序人生·缓存
单字叶2 小时前
MySQL数据库
数据库·mysql