MYSQL聚合函数
MySQL 聚合函数概述
MySQL 聚合函数用于对一组值执行计算并返回单个值,常用于数据统计和分析。以下是一些常用的聚合函数及其用法:
COUNT()
计算行数或非 NULL 值的数量。
SELECT COUNT(*) FROM employees; -- 计算总行数
select count(1) from employees; --这种写法也可以但是推荐第一种写法更好
SELECT COUNT(department) FROM employees; -- 计算非 NULL 的 department 数量
SUM()
计算数值列的总和。
即使存在null也不怕,会过滤掉不参与计算,不会出现null+n = null的情况;(n为常量)。
SELECT SUM(salary) FROM employees; -- 计算 salary 总和AVG()
计算数值列的平均值。
SELECT AVG(salary) FROM employees; -- 计算 salary 平均值
MAX()
返回列中的最大值。
SELECT MAX(salary) FROM employees; -- 获取最高 salary
MIN()
返回列中的最小值。
SELECT MIN(salary) FROM employees; -- 获取最低 salary
GROUP BY 子句
结合聚合函数对结果集进行分组。
SELECT department, AVG(salary) FROM employees GROUP BY department; -- 按部门计算平均工资
HAVING 子句
对分组后的结果进行过滤,这个和where类似,区别在于这个是对临时表进行操作的,但是where是对实际表进行操作的。
SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 5000; -- 过滤平均工资大于 5000 的部门
注意事项
- 聚合函数通常与
GROUP BY一起使用。 HAVING用于过滤分组后的结果,而WHERE用于过滤分组前的数据。DISTINCT可以与聚合函数结合使用,例如COUNT(DISTINCT department)计算不重复的部门数量。
