mysql中聚合函数如何使用_mysql 聚合函数教程

聚合函数用于计算并返回单个结果,包括COUNT、SUM、AVG、MAX、MIN,常与GROUP BY和HAVING配合使用。

MySQL中的聚合函数用于对一组值执行计算,并返回单个结果。常见的聚合函数包括 COUNT、SUM、AVG、MAX 和 MIN。它们通常与 GROUP BY 子句一起使用,用来对数据进行分组统计。

COUNT():统计行数

用于统计表中行的数量,可以统计所有行或某个字段的非空值数量。

• COUNT(*) 统计所有行,包含 NULL 值
• COUNT(字段名) 只统计该字段非 NULL 的行数

示例:

SELECT COUNT(*) FROM users;
SELECT COUNT(email) FROM users WHERE age > 20;

SUM():求和

对数值型字段的值进行求和,忽略 NULL 值。

• 常用于计算总金额、总数量等

示例:

SELECT SUM(salary) FROM employees;
SELECT department, SUM(salary) FROM employees GROUP BY department;

AVG():计算平均值

计算某字段的平均值,自动忽略 NULL 值。

• 对数值类型有效

示例:

SELECT AVG(score) FROM student_scores;
SELECT course, AVG(score) FROM student_scores GROUP BY course;

MAX() 与 MIN():最大值与最小值

分别返回指定字段的最大值和最小值。

• 可用于数字、字符串、日期等类型

示例:

SELECT MAX(price), MIN(price) FROM products;
SELECT name, birth_date FROM users WHERE birth_date = (SELECT MIN(birth_date) FROM users);

聚合函数常配合 GROUP BY 对数据分组处理。若需筛选分组后的结果,应使用 HAVING 而不是 WHERE。

示例:

SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 5000;

基本上就这些。掌握这几个函数,再结合 GROUP BY 和 HAVING,就能完成大多数统计需求。注意别在 WHERE 中直接用聚合函数,那是 HAVING 的职责。