MySQL中如何求平均值常见实例(AVG函数详解)

 更新时间:2025年11月18日 11:34:59   作者:nj0128  
MySQL avg()是一个聚合函数,用于返回各种记录中表达式的平均值,这篇文章主要介绍了MySQL中用AVG函数如何求平均值的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

前言

在使用 MySQL 进行数据分析时,计算平均值是最常见的需求之一。MySQL 提供了内置的聚合函数 AVG() 来帮助我们轻松完成这一任务。本文将详细介绍 AVG() 函数的使用方法及常见示例。

一、基本语法

SELECT AVG(column_name) FROM table_name;
  • AVG():表示求平均值的聚合函数。
  • column_name:要计算平均值的字段(列名)。
  • table_name:包含该字段的表名。

二、示例讲解

假设我们有一张名为 grades 的表,表结构如下:

idnamecoursescore
1TomMath85
2AliceMath90
3BobEnglish78
4JaneMath95

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() 可以轻松统计列的平均值。
  • 可以搭配 WHEREGROUP 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函数求平均值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • windows下mysql忘记root密码的解决方法

    windows下mysql忘记root密码的解决方法

    windows下mysql忘记root密码的解决方法,碰到这个问题的朋友可以参考下。
    2010-02-02
  • 详解MySQL与Spring的自动提交(autocommit)

    详解MySQL与Spring的自动提交(autocommit)

    这篇文章主要介绍了MySQL与Spring的自动提交(autocommit)的的相关资料,帮助大家更好的理解和使用MySQL与spring,感兴趣的朋友可以了解下
    2021-01-01
  • MySQL用户和权限及破解root口令的方法示例

    MySQL用户和权限及破解root口令的方法示例

    这篇文章主要介绍了详解MySQL用户和权限及破解root口令,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 在MySQL中使用mysqlbinlog flashback的简单教程

    在MySQL中使用mysqlbinlog flashback的简单教程

    这篇文章主要介绍了在MySQL中使用mysqlbinlog flashback的简单教程,可以很方便地恢复数据,作者还列出了使用时一些需要注意的地方,需要的朋友可以参考下
    2015-05-05
  • MYSQL中查询LONGBLOB类型数据的大小的详细示例

    MYSQL中查询LONGBLOB类型数据的大小的详细示例

    在MySQL中,LONGBLOB 是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,但是,LONGBLOB 数据类型本身并不直接存储数据的大小(长度),它存储的是二进制数据的实际内容,这篇文章主要介绍了MYSQL中怎么查询LONGBLOB类型数据的大小,需要的朋友可以参考下
    2024-06-06
  • mysql条件下推的实现

    mysql条件下推的实现

    本文主要介绍了Java开发中SQL优化的条件下推技术,通过提前将过滤条件下推至子查询/视图执行,减少中间结果量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09
  • 一文教你解决MySQL的深度分页问题

    一文教你解决MySQL的深度分页问题

    在 MySQL 中,分页是一个常见的功能,但是,当出现深度分页时,因为数据库需要扫描和跳过大量记录,可能会导致性能问题,下面我们就来看看该如何解决吧
    2024-11-11
  • Mysql触发器在PHP项目中用来做信息备份、恢复和清空

    Mysql触发器在PHP项目中用来做信息备份、恢复和清空

    这篇文章主要介绍了Mysql触发器在PHP项目中用来做信息备份、恢复和清空的相关资料,需要的朋友可以参考下
    2017-11-11
  • 解析Mysql临时表及特点

    解析Mysql临时表及特点

    本篇文章是对Mysql中的临时表以及特点进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • MySQL 8.0.19支持输入3次错误密码锁定账户功能(例子)

    MySQL 8.0.19支持输入3次错误密码锁定账户功能(例子)

    这篇文章主要介绍了MySQL 8.0.19支持输入3次错误密码锁定账户功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01

最新评论