mysql 聚合函数知识点:COUNT() SUM() AVG() MAX() MIN() GROUP_CONCAT() GROUP BY HAVING

发布时间:2025-05-13      访问量:24
在 MySQL 里,聚合函数能够对一组值进行运算,然后返回单个结果。这类函数在数据统计分析方面极为常用。下面为你介绍一些常见的聚合函数及其使用示例:

1. COUNT()
**用途**:统计记录的数量。
**示例**:统计 `users` 表中的用户数量。
sql SELECT COUNT(*) FROM users;

2. SUM()
**用途**:计算数值列的总和。
**示例**:计算 `orders` 表中所有订单的总金额。
sql SELECT SUM(amount) FROM orders;

3. AVG()
**用途**:计算数值列的平均值。
**示例**:计算 `products` 表中产品的平均价格。
sql SELECT AVG(price) FROM products;

4. MAX()
**用途**:返回列中的最大值。
**示例**:找出 `employees` 表中员工的最高薪水。
sql SELECT MAX(salary) FROM employees;

5. MIN()
**用途**:返回列中的最小值。
**示例**:找出 `students` 表中学生的最低分数。
sql SELECT MIN(score) FROM students;

6. GROUP_CONCAT()
**用途**:将分组中的值连接成一个字符串。
**示例**:把 `tags` 表中每个文章的标签连接成字符串。
sql SELECT article_id, GROUP_CONCAT(tag_name) AS tags FROM tags GROUP BY article_id;

7. 使用 GROUP BY 子句
**用途**:按列分组后应用聚合函数。
**示例**:统计每个部门的员工数量。
sql SELECT department, COUNT(*) AS num_employees FROM employees GROUP BY department;

8. 使用 HAVING 子句
**用途**:对分组后的结果进行过滤。
**示例**:筛选出员工数量超过 10 人的部门。
sql SELECT department, COUNT(*) AS num_employees FROM employees GROUP BY department HAVING COUNT(*) > 10;

注意要点
- 聚合函数会自动忽略 `NULL` 值,若想包含 `NULL`,可先使用 `COALESCE` 函数进行处理。
- `GROUP BY` 子句一般要和聚合函数搭配使用,而 `HAVING` 子句用于对分组后的结果进行筛选。
- 可以使用 `ROUND()` 等函数对聚合结果进行格式化处理。

如果你需要更复杂的统计功能,还能将多个聚合函数组合起来使用,或者和窗口函数一起搭配使用。
堆内存
多线程
strdup
初始化器
冒泡排序
增删改查
BufferedReader
输入输出
面向对象
生命周期
闭包的概念
原型链
Flask
mysql-connector-python
单例模式
浅拷贝
隔离级别
索引
InnoDB
左连接
聚合函数
PuTTY
TRUNCATE
str_starts_with_many
DateTime
array_combine
闭包的概念