悠悠楠杉
网站页面
在数据库操作中,聚合函数是处理数据的利器。它们能够对一组值执行计算,并返回单个统计结果。无论是数据报表生成、业务分析还是日常查询,聚合函数都扮演着至关重要的角色。本文将系统介绍聚合函数的类型、语法及实际应用场景,并通过实例演示如何灵活运用。
聚合函数(Aggregate Function)是SQL中用于对多行数据进行汇总计算的函数。它们通常与GROUP BY子句配合使用,实现分组统计。常见的聚合函数包括:
- COUNT:统计行数
- SUM:计算数值列的总和
- AVG:计算平均值
- MAX/MIN:获取最大值/最小值
用于统计符合条件的记录数。
- 基本语法:sql
SELECT COUNT(column_name) FROM table_name WHERE condition;
- 实例:统计员工表中工资超过5000的人数
SELECT COUNT(*) FROM employees WHERE salary > 5000;计算指定列的总和,仅适用于数值类型。
- 实例:计算某商品的销售总额
SELECT SUM(amount) FROM sales WHERE product_id = 101;返回某列的平均值,自动忽略NULL值。
- 实例:计算部门平均工资
SELECT AVG(salary) FROM employees GROUP BY department_id;获取某列的最大值或最小值。
- 实例:查找最高和最低温度记录
SELECT MAX(temperature), MIN(temperature) FROM weather_data;聚合函数常与GROUP BY结合,实现分组统计。例如:
- 按部门统计员工数量和平均工资
SELECT department_id, COUNT(*) AS employee_count, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id;HAVING用于对聚合结果进行筛选(类似于WHERE,但针对分组后的数据)。
- 实例:筛选平均工资超过8000的部门
SELECT department_id, AVG(salary)
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 8000;假设有一个订单表orders,包含字段:order_id、user_id、amount、order_date。
1. 统计每日订单总额
SELECT order_date, SUM(amount) AS daily_revenue
FROM orders
GROUP BY order_date;SELECT user_id, SUM(amount) AS total_spent
FROM orders
GROUP BY user_id
ORDER BY total_spent DESC
LIMIT 1;COUNT(*)外,其他聚合函数默认忽略NULL值。