4838

【重学 MySQL】三十七、聚合函数

【重学 MySQL】三十七、聚合函数

聚合函数(Aggregate Functions)在数据库查询中扮演着至关重要的角色,特别是在处理大量数据时。它们能够对一组值执行计算,并返回一个汇总后的单一值。这些函数在处理统计、报告生成以及数据分析等任务时特别有用。

基本概念聚合函数作用于一组行上,并返回一个单一的汇总值。这组行可以是表中的所有行,也可以是满足特定条件的行(通过WHERE子句指定)。此外,聚合函数经常与GROUP BY子句结合使用,以便对结果集进行分组,并对每个组分别计算聚合值。

5大常用的聚合函数COUNT()作用:计算行数。用法: COUNT(*):计算包括NULL值在内的行数。COUNT(column):计算指定列中非NULL值的行数。COUNT(DISTINCT column):计算指定列中不同非NULL值的数量。示例:SELECT COUNT(*) FROM employees; 计算employees表中的总行数。SUM()作用:计算数值列中值的总和。用法:SELECT SUM(column_name) FROM table_name;示例:SELECT SUM(salary) FROM employees; 计算employees表中所有员工的薪水总和。AVG()作用:计算数值列的平均值。用法:SELECT AVG(column_name) FROM table_name;示例:SELECT AVG(salary) FROM employees; 计算employees表中所有员工的平均薪水。MAX()作用:返回某列中的最大值。用法:SELECT MAX(column_name) FROM table_name;示例:SELECT MAX(salary) FROM employees; 返回employees表中薪水最高的员工的薪水。MIN()作用:返回某列中的最小值。用法:SELECT MIN(column_name) FROM table_name;示例:SELECT MIN(salary) FROM employees; 返回employees表中薪水最低的员工的薪水。使用场景统计总数:使用COUNT()函数来计算表中的记录数,或者某个特定条件下的记录数。求和:使用SUM()函数来计算数值列的总和,如计算总销售额、总库存量等。计算平均值:AVG()函数用于计算平均值,如平均薪资、平均成绩等。查找极值:MAX()和MIN()函数用于找出某列的最大值和最小值,如最高分、最低分、最高销售额等。注意事项当聚合函数与GROUP BY子句一起使用时,它们会对每个组分别计算聚合值。聚合函数通常忽略NULL值,但COUNT(*)除外,它会计算包括NULL值在内的所有行数。聚合函数的结果可以作为SELECT列表的一部分返回,也可以用在HAVING子句中作为过滤条件。聚合函数不能嵌套调用聚合函数(即不能直接使用AVG(SUM(column_name))),但可以在子查询中嵌套使用聚合函数。示例查询假设有一个名为sales的表,包含product_id、sale_date和amount等字段,以下是一些使用聚合函数的示例查询:

计算总销售额:SELECT SUM(amount) FROM sales;计算每种产品的平均销售额:SELECT product_id, AVG(amount) FROM sales GROUP BY product_id;找出销售额最高的产品ID:SELECT product_id FROM sales GROUP BY product_id ORDER BY SUM(amount) DESC LIMIT 1;这些聚合函数在数据分析、报表生成等场景中非常有用,能够帮助用户快速地从大量数据中提取出关键信息。