前言
在使用 mysql 进行数据分析时,计算平均值是最常见的需求之一。mysql 提供了内置的聚合函数 avg() 来帮助我们轻松完成这一任务。本文将详细介绍 avg() 函数的使用方法及常见示例。
一、基本语法
select avg(column_name) from table_name;
avg():表示求平均值的聚合函数。column_name:要计算平均值的字段(列名)。table_name:包含该字段的表名。
二、示例讲解
假设我们有一张名为 grades 的表,表结构如下:
| id | name | course | score |
|---|---|---|---|
| 1 | tom | math | 85 |
| 2 | alice | math | 90 |
| 3 | bob | english | 78 |
| 4 | jane | math | 95 |
1. 计算全表平均分
select avg(score) from grades;
输出将是所有记录中 score 字段的平均值。
2. 计算某门课程的平均分(例如:math)
select avg(score) from grades where course = 'math';
输出将是 course 等于 'math' 的记录中 score 字段的平均值。
三、结合分组统计平均值(group by)
如果你想分别统计每门课程的平均分,可以使用 group by:
select course, avg(score) as average_score from grades group by course;
输出结果将是每门课程对应的平均分数。
四、处理空值(null)
avg() 函数在计算时会自动忽略 null 值,因此不需要手动筛除:
select avg(score) from grades; -- null 值将被自动排除,不影响平均值
五、小结
- 使用
avg()可以轻松统计列的平均值。 - 可以搭配
where、group by等语句进行更复杂的数据分析。 avg()会自动忽略null值,避免错误。
在日常开发中,平均值的统计常用于报表、用户行为分析、商品评分等业务场景,是非常实用的 sql 技巧。
附一个完整示例
假设表结构如下:
create table grades (
id int primary key,
name varchar(50),
course varchar(50),
score decimal(5,2)
);
insert into grades values
(1, 'tom', 'math', 85.0),
(2, 'alice', 'math', 90.0),
(3, 'bob', 'english', 78.0),
(4, 'jane', 'math', 95.0);查询每门课程的平均分(保留2位小数):
select
course,
round(avg(score), 2) as average_score
from grades
group by course;输出结果:
course | average_score --------|-------------- math | 90.00 english | 78.00
到此这篇关于mysql中如何求平均值的文章就介绍到这了,更多相关mysql avg函数求平均值内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论