1. `COUNT()`
用于统计记录的数量。它可以统计某一列的非空值数量,也可以使用 `*` 统计所有记录的数量。
sql
-- 统计 users 表中的记录总数
SELECT COUNT(*) FROM users;
-- 统计 users 表中 age 列非空值的数量
SELECT COUNT(age) FROM users;
2. `SUM()`
用于计算某一列值的总和,通常用于数值类型的列。
sql
-- 计算 orders 表中 amount 列的总和
SELECT SUM(amount) FROM orders;
3. `AVG()`
用于计算某一列值的平均值,同样适用于数值类型的列。
sql
-- 计算 employees 表中 salary 列的平均值
SELECT AVG(salary) FROM employees;
4. `MAX()`
用于找出某一列中的最大值,可以用于数值、日期等类型的列。
sql
-- 找出 products 表中 price 列的最大值
SELECT MAX(price) FROM products;
5. `MIN()`
用于找出某一列中的最小值,也适用于数值、日期等类型的列。
sql
-- 找出 sales 表中 sale_date 列的最小值
SELECT MIN(sale_date) FROM sales;
6. `GROUP_CONCAT()`
将分组后某一列的值连接成一个字符串,通常与 `GROUP BY` 子句一起使用。
sql
-- 将 students 表中每个班级的学生姓名连接成一个字符串
SELECT class, GROUP_CONCAT(name)
FROM students
GROUP BY class;
这些聚合函数通常会结合 `GROUP BY` 子句使用,以对数据进行分组计算。例如:
sql
-- 按部门统计员工的平均工资
SELECT department, AVG(salary)
FROM employees
GROUP BY department;
此外,聚合函数还可以与 `HAVING` 子句一起使用,用于过滤分组后的结果。例如:
sql
-- 找出平均工资大于 5000 的部门
SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) > 5000;