MySQL 聚合函数
在MySQL中,聚合函数用于对一组值进行计算并返回单个值。它们通常用于数据汇总和统计分析。常见的聚合函数包括 COUNT
、SUM
、AVG
、MIN
和 MAX
。本文将详细介绍这些函数的使用方法,并通过实际案例帮助你更好地理解它们。
1. 什么是聚合函数?
聚合函数是SQL中的一类特殊函数,它们对一组值执行计算并返回单个值。这些函数通常与 GROUP BY
子句一起使用,以便对分组后的数据进行汇总。
备注
聚合函数忽略 NULL
值,除非特别说明。
2. 常见的聚合函数
2.1 COUNT
函数
COUNT
函数用于计算行数。它可以用于计算表中的总行数,或者计算满足特定条件的行数。
语法:
COUNT(expression)
示例:
假设我们有一个 students
表,包含以下数据:
id | name | age |
---|---|---|
1 | Alice | 20 |
2 | Bob | 22 |
3 | Charlie | 21 |
4 | David | 20 |
计算表中的总行数:
SELECT COUNT(*) AS total_students FROM students;
输出:
total_students |
---|
4 |
计算年龄大于20的学生人数:
SELECT COUNT(*) AS students_above_20 FROM students WHERE age > 20;
输出:
students_above_20 |
---|
2 |
2.2 SUM
函数
SUM
函数用于计算数值列的总和。
语法:
SUM(expression)
示例:
假设我们有一个 sales
表,包含以下数据:
id | product | amount |
---|---|---|
1 | A | 100 |
2 | B | 200 |
3 | A | 150 |
4 | C | 300 |
计算所有销售的总金额:
SELECT SUM(amount) AS total_sales FROM sales;
输出:
total_sales |
---|
750 |
2.3 AVG
函数
AVG
函数用于计算数值列的平均值。
语法:
AVG(expression)
示例:
计算 students
表中学生的平均年龄:
SELECT AVG(age) AS average_age FROM students;
输出:
average_age |
---|
20.75 |
2.4 MIN
和 MAX
函数
MIN
和 MAX
函数分别用于查找数值列的最小值和最大值。
语法:
MIN(expression)
MAX(expression)
示例:
查找 students
表中年龄最小和最大的学生:
SELECT MIN(age) AS min_age, MAX(age) AS max_age FROM students;
输出:
min_age | max_age |
---|---|
20 | 22 |
3. 聚合函数与 GROUP BY
子句
聚合函数通常与 GROUP BY
子句一起使用,以便对分组后的数据进行汇总。
示例:
计算 sales
表中每个产品的总销售额:
SELECT product, SUM(amount) AS total_sales FROM sales GROUP BY product;
输出:
product | total_sales |
---|---|
A | 250 |
B | 200 |
C | 300 |