【MySQL ✨】MySQL 入门之旅 · 第九篇:聚合函数与分组查询

本篇文章将讲解 MySQL 中常用的 聚合函数(Aggregate Functions)分组查询(GROUP BY),帮助你对数据进行统计分析。


目录

  1. 聚合函数简介
  2. 常用聚合函数
  3. [GROUP BY 分组查询](#GROUP BY 分组查询)
  4. [HAVING 条件过滤分组](#HAVING 条件过滤分组)
  5. 聚合函数常用示例对照表
  6. 小结

聚合函数简介

聚合函数用于对一组数据进行计算,并返回单一值。常用于统计、分析和报表场景。

MySQL 常用的聚合函数包括:

  • COUNT():计数
  • SUM():求和
  • AVG():平均值
  • MAX():最大值
  • MIN():最小值

常用聚合函数

1. COUNT()

计算行数或某列非 NULL 值的数量:

sql 复制代码
SELECT COUNT(*) FROM users;
SELECT COUNT(age) FROM users;

2. SUM()

计算数值列的总和:

sql 复制代码
SELECT SUM(age) FROM users;

3. AVG()

计算数值列的平均值:

sql 复制代码
SELECT AVG(age) FROM users;

4. MAX() 与 MIN()

查询最大值或最小值:

sql 复制代码
SELECT MAX(age) FROM users;
SELECT MIN(age) FROM users;

GROUP BY 分组查询

GROUP BY 将数据按指定列分组,并对每组进行聚合计算。例如:

sql 复制代码
SELECT city, COUNT(*) AS user_count
FROM users
GROUP BY city;

按城市统计用户数量。


HAVING 条件过滤分组

HAVING 用于对分组后的结果进行条件过滤,类似于 WHERE 但作用于聚合结果:

sql 复制代码
SELECT city, COUNT(*) AS user_count
FROM users
GROUP BY city
HAVING user_count > 5;

只返回用户数量大于 5 的城市。


聚合函数常用示例对照表

功能 SQL 示例 说明
计数 SELECT COUNT(*) FROM users; 返回总行数
求和 SELECT SUM(age) FROM users; 返回年龄总和
平均值 SELECT AVG(age) FROM users; 返回平均年龄
最大值 SELECT MAX(age) FROM users; 返回最大年龄
最小值 SELECT MIN(age) FROM users; 返回最小年龄
分组计数 SELECT city, COUNT(*) FROM users GROUP BY city; 按城市分组计数
分组过滤 SELECT city, COUNT(*) FROM users GROUP BY city HAVING COUNT(*)>5; 分组后筛选

小结

本篇文章介绍了 MySQL 中 聚合函数分组查询 的基础知识。掌握这些技能,你就可以轻松统计、分析数据,为数据报表和分析提供支持。


📘 下一篇,我们将学习 MySQL 子查询与嵌套查询,带你掌握更复杂的查询操作。

相关推荐
Java后端的Ai之路33 分钟前
Text-to-SQL与智能问数完全指南:基本概念、核心原理、Python实战教学及企业项目落地
数据库·python·sql·text-to-sql·智能问数
Elastic 中国社区官方博客34 分钟前
Prometheus Remote Write 在 Elasticsearch 中的摄取原理
大数据·数据库·elasticsearch·搜索引擎·信息可视化·全文检索·prometheus
2601_9498166837 分钟前
Spring boot启动原理及相关组件
数据库·spring boot·后端
2301_7826591837 分钟前
如何使用Navicat连接云端MariaDB_白名单与实例配置
jvm·数据库·python
2301_803875617 小时前
PHP 中处理会话数组时的类型错误解析与修复指南
jvm·数据库·python
m0_743623927 小时前
c++如何批量修改文件后缀名_std--filesystem--replace_extension【实战】
jvm·数据库·python
2501_914245938 小时前
CSS如何处理CSS变量作用域冲突_利用特定类名重写变量值
jvm·数据库·python
maqr_1109 小时前
MySQL数据库迁移到云端如何保障安全_数据加密与SSL连接配置
jvm·数据库·python
u0109147609 小时前
MySQL如何限制触发器递归调用的深度_防止触发器死循环方法
jvm·数据库·python
weixin_381288189 小时前
MySQL中如何使用HEX函数转换十六进制_MySQL进制转换函数
jvm·数据库·python