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()` 等函数对聚合结果进行格式化处理。
如果你需要更复杂的统计功能,还能将多个聚合函数组合起来使用,或者和窗口函数一起搭配使用。