侧边栏壁纸
博主头像
孔子说JAVA博主等级

成功只是一只沦落在鸡窝里的鹰,成功永远属于自信且有毅力的人!

  • 累计撰写 285 篇文章
  • 累计创建 125 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

MySql聚合函数的使用方式

孔子说JAVA
2022-09-13 / 0 评论 / 0 点赞 / 28 阅读 / 2,799 字 / 正在检测是否收录...

MySQL数据库中提供了很丰富的函数,这些函数可以帮助用户更加方便的处理表中的数据,他们会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。通过这些函数,可以简化用户的操作。SELECT语句及其条件表达式都可以使用这些函数。同时,INSERT 、UPDATE、DELECT语句及其条件表达式也可以使用这些函数。本文主要讲解聚合函数,函数列表如下:

函数名称 作 用
MAX 查询指定列的最大值
MIN 查询指定列的最小值
COUNT 统计查询结果的行数
SUM 求和,返回指定列的总和
AVG 求平均值,返回指定列数据的平均值

为了方便理解,本节中所有示例都是在学生成绩表 tb_students_score 的基础上演示的,学生成绩表的数据内容如下所示:

mysql> use test_db;
Database changed
mysql> SELECT * FROM tb_students_score;
+--------------+---------------+
| student_name | student_score |
+--------------+---------------+
| Dany         |            90 |
| Green        |            99 |
| Henry        |            95 |
| Jane         |            98 |
| Jim          |            88 |
| John         |            94 |
| Lily         |           100 |
| Susan        |            96 |
| Thomas       |            93 |
| Tom          |            89 |
+--------------+---------------+
10 rows in set (0.13 sec)

1、MAX 最大值函数

MAX() 函数是用来返回指定列中的最大值。

【实例 1】在 tb_students_score 表中查找最高的成绩:

mysql> SELECT MAX(student_score)
    -> AS max_score
    -> FROM tb_students_score;
+-----------+
| max_score |
+-----------+
|       100 |
+-----------+
1 row in set (0.06 sec)

由运行结果可以看到,MAX() 函数查询出 student_score 字段的最大值为 100。

MAX() 函数不仅适用于查找数值类型,也可应用于字符类型。

【实例 2】在 tb_students_score 表中查找 student_name 的最大值:

mysql> SELECT MAX(student_name)
    -> AS max_name
    -> FROM tb_students_score;
+----------+
| max_name |
+----------+
| Tom      |
+----------+
1 row in set (0.03 sec)

由运行结果可以看到,MAX() 函数可以对字母进行大小判断,并返回最大的字符或者字符串值。

注意:MAX() 函数还可以返回任意列中的最大值,包括返回字符类型的最大值。在对字符类型的数据进行比较时,按照字符的 ASCII 码值大小进行比较,从 a~z,a 的 ASCII 码最小,z 的最大。在比较时,先比较第一个字符,如果相等,继续比较下一个字符,一直到两个字符不相等或者字符结束为止。例如,b 与 t 比较时,t 为最大值;bcd 与 bca 比较时,bcd 为最大值。

2、MIN 最小值函数

MIN() 函数是用来返回查询列中的最小值。

【实例】在 tb_students_score 表中查找最低的成绩:

mysql> SELECT MIN(student_score)
    -> AS min_score
    -> FROM tb_students_score;
+-----------+
| min_score |
+-----------+
|        88 |
+-----------+
1 row in set (0.00 sec)

由结果可以看到,MIN() 函数查询出 student_score 字段的最小值为 88。

提示:MIN() 函数与 MAX() 函数类似,不仅适用于查找数值类型,也可应用于字符类型。

3、COUNT 记录行总数函数

COUNT() 函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,使用方法有以下两种:

  • COUNT(*) 计算表中总的行数,无论某列有数值或者为空值。
  • COUNT(字段名) 计算指定列下总的行数,计算时将忽略空值的行。

【实例】查询 tb_students_score 表中总的行数:

mysql> SELECT COUNT(student_name)
    -> AS students_number
    -> FROM tb_students_score;
+-----------------+
| students_number |
+-----------------+
|              10 |
+-----------------+
1 row in set (0.03 sec)

由查询结果可以看到,COUNT(*) 返回 tb_students_score 表中记录的总行数,无论值是什么。

提示:在计算总数的时候对待 NULL 值的方式是,指定列的值为空的行被 COUNT() 函数忽略,但若不指定列,而在 COUNT() 函数中使用星号*,则所有记录都不忽略。

4、SUM 求和函数

SUM() 是一个求总和的函数,返回指定列值的总和。

  • 如果在没有返回匹配行 SELECT 语句中使用 SUM 函数,则 SUM 函数返回 NULL,而不是 0。
  • DISTINCT 运算符允许计算集合中的不同值。
  • SUM 函数忽略计算中的 NULL 值。

【实例】在 tb_students_score 表中计算学生成绩的总分:

mysql> SELECT SUM(student_score)
    -> AS score_sum
    -> FROM tb_students_score;
+-----------+
| score_sum |
+-----------+
|       942 |
+-----------+
1 row in set (0.00 sec)

由查询结果可以看到,SUM() 函数返回学生的所有成绩之和为 942。

提示:SUM() 函数在计算时,忽略列值为 NULL 的行。

5、AVG 求平均值函数

AVG() 函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。

【实例】在 tb_students_score 表中,查询所有学生成绩的平均值:

mysql> SELECT AVG(student_score)
    -> AS score_avg
    -> FROM tb_students_score;
+-----------+
| score_avg |
+-----------+
|   94.2000 |
+-----------+
1 row in set (0.03 sec)

提示:使用 AVG() 函数时,参数为要计算的列名称,若要得到多个列的平均值,则需要在每一列都使用 AVG() 函数。

0

评论区