SQL中的聚合函数与数据分组

WI
Wilan
阅读时间:约 2 分钟
AggregateGroup-ByHaving

聚合函数是SQL中的一个子程序,在被调用时会返回一个单一的值。它用于对表中的属性或字段进行标准统计计算,例如计算总值、平均值、查找极值(最小/最大),以及计算记录数。

简而言之,聚合函数处理多行数据以生成一个简洁且有信息量的输出值。

1. 聚合函数的类型

在数据处理中,常用的聚合函数主要有五种:

  • SUM 此函数用于对指定列的所有数据求和。需要注意的是,SUM函数只能应用于数值数据类型的列。语法:SELECT SUM(列_名) FROM 表_名 WHERE 条件;
  • COUNT 此函数用于计算某列中的行数。与SUM不同,COUNT函数可以用于数值和非数值(字符串/文本)数据类型。语法:SELECT COUNT(列_名) FROM 表_名 WHERE 条件;
  • AVG(平均值) 此函数用于计算某列的平均值。与SUM一样,该函数仅适用于数值数据类型。语法:SELECT AVG(列_名) FROM 表_名 WHERE 条件;
  • MIN 此函数用于显示某列的最小值。MIN函数灵活,可用于数值和非数值数据类型。语法:SELECT MIN(列_名) FROM 表_名 WHERE 条件;
  • MAX 与MIN相反,此函数用于显示某列的最大值。该函数也支持数值和非数值数据类型。语法:SELECT MAX(列_名) FROM 表_名 WHERE 条件;

2. GROUP BY子句

GROUP BY子句用于根据所需表达式将一个或多个列上的数据分组。其工作原理是将具有相同值的记录收集到同一组中。

该子句的使用与聚合函数密切相关,我们经常希望查看每个特定类别的统计结果(如总计或平均值)。语法:SELECT 列_名 FROM 表_名 GROUP BY 列_名;

3. HAVING子句

HAVING子句的功能与WHERE子句类似,用于为查询结果添加条件或筛选。然而,两者之间存在根本区别:

  1. 替代WHERE:WHERE子句不能与聚合函数同时使用。因此,HAVING用于根据聚合函数的结果筛选数据。
  2. 多行操作:HAVING用于多行操作(数据分组后),而WHERE在数据分组前作用于单行级别。

语法:SELECT 列_名 FROM 表_名 GROUP BY 列_名 HAVING 条件;

Tags: #编程
W

作者

Wilan

巴厘岛Tekno的常驻撰稿人,积极分享技术、编程和软件工程领域的知识。

返回首页 最后更新日期:2026年6月5日