1. COUNT:计算表中的记录数。 示例:`SELECT COUNT FROM 表名;`
2. SUM:计算一列的总和。 示例:`SELECT SUM FROM 表名;`
3. AVG:计算一列的平均值。 示例:`SELECT AVG FROM 表名;`
4. MAX:返回一列中的最大值。 示例:`SELECT MAX FROM 表名;`
5. MIN:返回一列中的最小值。 示例:`SELECT MIN FROM 表名;`
6. GROUP_CONCAT:将分组后的多个列值连接成一个字符串。 示例:`SELECT GROUP_CONCAT FROM 表名 GROUP BY 列名;`
7. GROUP BY:与聚合函数一起使用,根据指定的列对结果进行分组。 示例:`SELECT 列名, COUNT FROM 表名 GROUP BY 列名;`
8. HAVING:用于过滤分组后的结果。 示例:`SELECT 列名, COUNT FROM 表名 GROUP BY 列名 HAVING COUNT > 1;`
9. COALESCE:返回列表中的第一个非NULL值。 示例:`SELECT COALESCE AS 结果;`
10. IFNULL:与COALESCE类似,但只接受两个参数。 示例:`SELECT IFNULL AS 结果;`
11. ROUND:四舍五入到指定的小数位数。 示例:`SELECT ROUND AS 结果;`
12. CONCAT:连接两个或多个字符串。 示例:`SELECT CONCAT AS 结果;`
13. SUBSTRING:提取字符串的一部分。 示例:`SELECT SUBSTRING AS 结果;`
14. DATE_FORMAT:格式化日期。 示例:`SELECT DATE_FORMAT AS 结果;`
15. NOW:返回当前的日期和时间。 示例:`SELECT NOW AS 结果;`
16. CURDATE:返回当前的日期。 示例:`SELECT CURDATE AS 结果;`
17. CURTIME:返回当前的时间。 示例:`SELECT CURTIME AS 结果;`
18. DATEDIFF:计算两个日期之间的天数。 示例:`SELECT DATEDIFF AS 结果;`
19. WEEKDAY:返回日期是星期几(0=星期一,1=星期二,以此类推)。 示例:`SELECT WEEKDAY AS 结果;`
20. DAYOFWEEK:返回日期是星期几(1=星期日,2=星期一,以此类推)。 示例:`SELECT DAYOFWEEK AS 结果;`
这些函数在数据分析、报告生成和业务逻辑处理中非常有用。使用这些函数时,请确保理解它们的行为和可能的副作用,以便正确地应用它们。
一、聚合函数的分类
MySQL中的聚合函数主要分为以下几类:
1. 计数函数:用于计算数据集中的记录数。
2. 求和函数:用于计算数据集中的数值总和。
3. 最大值和最小值函数:用于找出数据集中的最大值和最小值。
4. 平均值函数:用于计算数据集中的平均值。
5. 分组函数:用于对数据进行分组,并返回每个分组的结果。
二、常用聚合函数介绍
1. COUNT() 函数
COUNT() 函数用于计算数据集中的记录数。它通常用于统计表中的行数,也可以用于统计满足特定条件的记录数。
```sql
SELECT COUNT() FROM 表名;
SELECT COUNT(列名) FROM 表名;
2. SUM() 函数
SUM() 函数用于计算数据集中的数值总和。它通常用于计算数值列的总和。
```sql
SELECT SUM(列名) FROM 表名;
3. MAX() 和 MIN() 函数
MAX() 函数用于找出数据集中的最大值,而MIN() 函数用于找出数据集中的最小值。
```sql
SELECT MAX(列名) FROM 表名;
SELECT MIN(列名) FROM 表名;
4. AVG() 函数
AVG() 函数用于计算数据集中的平均值。它通常用于计算数值列的平均值。
```sql
SELECT AVG(列名) FROM 表名;
5. GROUP_CONCAT() 函数
GROUP_CONCAT() 函数用于将数据集中的行连接成一个字符串。它通常用于将多个值合并为一个字符串,并可以指定分隔符。
```sql
SELECT GROUP_CONCAT(列名 SEPARATOR '分隔符') FROM 表名;
三、聚合函数在实际应用中的使用
1. 统计表中的记录数
使用COUNT() 函数可以轻松统计表中的记录数。
```sql
SELECT COUNT() FROM users;
2. 计算数值列的总和
使用SUM() 函数可以计算数值列的总和。
```sql
SELECT SUM(salary) FROM employees;
3. 找出最大值和最小值
使用MAX() 和 MIN() 函数可以找出数据集中的最大值和最小值。
```sql
SELECT MAX(age) FROM customers;
SELECT MIN(age) FROM customers;
4. 计算平均值
使用AVG() 函数可以计算数值列的平均值。
```sql
SELECT AVG(salary) FROM employees;
5. 合并多个值
使用GROUP_CONCAT() 函数可以将多个值合并为一个字符串。
```sql
SELECT GROUP_CONCAT(name SEPARATOR ', ') FROM customers;