导读:本期聚焦于小伙伴创作的《MySQL聚合函数完全指南:COUNT、SUM、AVG、MAX、MIN用法详解与实例》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《MySQL聚合函数完全指南:COUNT、SUM、AVG、MAX、MIN用法详解与实例》有用,将其分享出去将是对创作者最好的鼓励。

MySQL聚合函数的使用介绍

MySQL聚合函数是用于对一组值进行计算并返回单个值的函数,通常在数据处理、统计分析场景中发挥重要作用。它们常与GROUP BY子句配合使用,对分组后的数据执行统计运算,帮助我们快速获取数据的汇总信息。

常用聚合函数分类

MySQL提供了多种聚合函数,覆盖不同的统计需求,以下是常用的几类:

  • 统计类COUNT()SUM()AVG()

  • 极值类MAX()MIN()

  • 去重统计类COUNT(DISTINCT)

各聚合函数详解与示例

1. COUNT() 函数

COUNT()用于统计符合条件的行数,支持三种常见用法:

  • COUNT(*):统计所有行,包括包含NULL值的行

  • COUNT(列名):统计指定列中非NULL值的行数

  • COUNT(DISTINCT 列名):统计指定列中去重后的非NULL值数量

假设我们有如下student表:

CREATE TABLE student (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL,
    score DECIMAL(5,2),
    class VARCHAR(10)
);

INSERT INTO student (name, score, class) VALUES
('张三', 85.5, '一班'),
('李四', 92.0, '一班'),
('王五', NULL, '二班'),
('赵六', 88.5, '二班'),
('孙七', 92.0, '一班');

统计所有学生数量:

SELECT COUNT(*) AS total_student FROM student;
-- 结果:5

统计有成绩的学生数量:

SELECT COUNT(score) AS has_score_student FROM student;
-- 结果:4(王五的成绩为NULL,不计入)

统计去重后的成绩数量:

SELECT COUNT(DISTINCT score) AS distinct_score FROM student;
-- 结果:3(85.5、92.0、88.5三个不同成绩)

2. SUM() 函数

SUM()用于计算指定列的数值总和,仅对非NULL值生效,如果列所有值都为NULL,返回NULL。

计算所有学生的总成绩:

SELECT SUM(score) AS total_score FROM student;
-- 结果:85.5 + 92.0 + 88.5 + 92.0 = 358.0

结合GROUP BY计算每个班级的总成绩:

SELECT class, SUM(score) AS class_total_score FROM student GROUP BY class;
-- 一班结果:85.5 + 92.0 + 92.0 = 269.5
-- 二班结果:88.5

3. AVG() 函数

AVG()用于计算指定列的数值平均值,仅对非NULL值生效,计算方式为总和除以非NULL值的数量。

计算所有学生的平均成绩:

SELECT AVG(score) AS avg_score FROM student;
-- 结果:358.0 / 4 = 89.5

计算每个班级的平均成绩:

SELECT class, AVG(score) AS class_avg_score FROM student GROUP BY class;
-- 一班结果:269.5 / 3 ≈ 89.83
-- 二班结果:88.5 / 1 = 88.5

4. MAX() 和 MIN() 函数

MAX()返回指定列的最大值,MIN()返回指定列的最小值,同样忽略NULL值。

查询所有学生中的最高分和最低分:

SELECT MAX(score) AS max_score, MIN(score) AS min_score FROM student;
-- max_score结果:92.0,min_score结果:85.5

查询每个班级的最高分:

SELECT class, MAX(score) AS class_max_score FROM student GROUP BY class;
-- 一班结果:92.0,二班结果:88.5

使用注意事项

  1. 聚合函数默认会忽略NULL值,仅在COUNT(*)的场景下会统计包含NULL的行。

  2. 如果SELECT语句中同时包含普通列和聚合函数,普通列必须出现在GROUP BY子句中,否则查询结果可能不符合预期。

  3. 聚合函数不能直接用在WHERE子句中,如果需要筛选聚合后的结果,需要使用HAVING子句。

例如,查询平均成绩大于90的班级:

SELECT class, AVG(score) AS class_avg_score 
FROM student 
GROUP BY class 
HAVING class_avg_score > 90;
-- 结果:一班,平均约89.83不满足,无返回结果;如果调整数据后满足条件才会返回对应班级

总结

MySQL聚合函数是数据统计分析的核心工具,熟练掌握COUNT()SUM()AVG()MAX()MIN()等函数的用法,结合GROUP BYHAVING子句,可以高效完成各类数据汇总需求,大幅提升数据处理效率。

MySQL聚合函数 COUNT函数 GROUPBY SUM用法 AVG函数

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。