AVG 求平均值,返回指定列数据的平均值

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

示例用法

在演示 AVG 函数用法之前,我们先 t_user 用户表,表数据如下:

mysql> select * from t_user;
+----+------+-----+------+----------+
| id | name | sex | age  | salary   |
+----+------+-----+------+----------+
|  1 | 张三 | 男  |   22 | 6782.50  |
|  2 | 李四 | 男  |   27 | 7523.00  |
|  3 | 王五 | 女  |   22 | 6760.30  |
|  4 | 赵六 | 男  |   24 | 6810.50  |
|  5 | 王二 | 男  |   27 | 10280.00 |
|  6 | 杜一 | 女  |   25 | 8700.00  |
|  7 | NULL | 女  | NULL | 9750.00  |
+----+------+-----+------+----------+
7 rows in set (0.06 sec)

(1)在 t_user 表中,查询所有用户薪水的平均值,如下:

mysql> select AVG(salary) as AVG_SALARY from t_user;
+-------------+
| AVG_SALARY  |
+-------------+
| 8086.614286 |
+-------------+
1 row in set (0.04 sec)

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

mysql> select AVG(age) as AVG_AGE, AVG(salary) as AVG_SALARY from t_user;
+---------+-------------+
| AVG_AGE | AVG_SALARY  |
+---------+-------------+
| 24.5000 | 8086.614286 |
+---------+-------------+
1 row in set (0.03 sec)

上面使用 AVG 函数分别统计 age 和 salary 列的平均值。

(2)如果 AVG 函数统计的列存在 NULL 值,那么 NULL 值存在的行将被忽略。如下:

mysql> select SUM(AGE)/6 AS VAL1, AVG(AGE) AS VAL2 from t_user;
+---------+---------+
| VAL1    | VAL2    |
+---------+---------+
| 24.5000 | 24.5000 |
+---------+---------+
1 row in set (0.03 sec)

由运行结果得知,AVG 函数并没有将为 NULL 的行进行计算。

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号