聚合函数在SQL中用于对一组值执行计算,并返回单个值。这些函数通常与GROUP BY
子句一起使用,以根据一个或多个列对结果集进行分组,并对每个组执行聚合计算。以下是几个常用的聚合函数及其使用示例:
1. SUM()
SUM()
函数用于计算某列的总和。
示例:计算所有订单的总金额。
SELECT SUM(order_amount) AS total_amount FROM orders; |
2. AVG()
AVG()
函数用于计算某列的平均值。
示例:计算所有员工的平均工资。
SELECT AVG(salary) AS average_salary FROM employees; |
3. MAX()
MAX()
函数用于返回某列的最大值。
示例:查找销售额最高的订单。
SELECT order_id, MAX(order_amount) AS max_amount FROM orders; |
注意:如果与GROUP BY
一起使用,MAX()
将返回每个组的最大值。否则,它将返回整个结果集的最大值。
4. MIN()
MIN()
函数用于返回某列的最小值。
示例:查找库存量最少的产品。
SELECT product_id, MIN(stock_quantity) AS min_quantity FROM products; |
同样地,如果与GROUP BY
一起使用,MIN()
将返回每个组的最小值。
5. COUNT()
虽然COUNT()
不是严格意义上的聚合函数(因为它返回的是行数),但它经常与聚合函数一起使用,用于计算某个组或整个结果集的行数。
示例:计算每个部门的员工数量。
SELECT department_id, COUNT(*) AS num_employees FROM employees GROUP BY department_id; |
6. GROUP_CONCAT()
虽然这不是一个标准的SQL聚合函数,但MySQL提供了GROUP_CONCAT()
函数,它可以将多个行的值连接成一个字符串。
示例:列出每个部门的所有员工姓名(以逗号分隔)。
SELECT department_id, GROUP_CONCAT(employee_name SEPARATOR ', ') AS employees FROM employees GROUP BY department_id; |
注意事项
- 当使用聚合函数时,
SELECT
语句中的其他列必须包含在GROUP BY
子句中(除非它们被包含在聚合函数中)。 - 如果未指定
GROUP BY
子句,则聚合函数将对整个结果集进行操作。