聚合函数
1. 概述
聚合函数又称为统计函数或汇总函数,它对一组值进行计算并返回一个数值,是 SQL 中国能使用较多的一类函数,对数据实现更加丰富的操作;
聚合函数常与 SELECT 语句一起使用;
2. 聚合函数
聚合函数对一组值进行计算,通常用于数据统计;聚合函数经常与 SELECT 语句的 Group By 子句一起使用;
除了 Count 以外,聚合函数丢回忽略空值,SQL Server 数据库共有十多种聚合函数;
2.1 Sum 函数求和
Sum 函数
用于计算表达式中所有值或者非重复值的和,Sum 只能用于数字列,且忽略表达式中的 Null 值;
Sum 函数的语法格式为:
Sum([All|Distinct]expression)
All 计算所有值的和,Distinct 返回非重复制的和,即去除表达式中的重复值,默认情况下为 All;
Expression 可以是常量、列、函数、算数运算符、位运算或字符串表达式的任意组合;
Expression 是精确数值或近似值数据类型(bit 数据类型除外)的表达式;
2.2 Avg 求平均值
Avg 函数
能返回某一列的平均值;Avg 函数返回组中各值的平均值会或略表达式中的 Null 值;
Avg 函数的语法格式为:
Avg([All|Distinct]expression)
All 计算所有值的平均值,Distinct 去除表达式中的重复值,All 为默认值;
Expression 是精确数值或近似数值数据类型(bit 数据类型除外)的表达式;
2.3 Min 函数返回最小值
Min 函数
返回表达式的最小值;
Min 函数的语法表达式为:
Mi([All|Distinct]expression)
All 表示对表达式的所有值进行聚合计算,Distinct 去除表达式总的重复值;
Distinct 对于 Min 无意义,使用它是为了符合 ISO 标准;Expression 可以是常量、列名、函数、算术运算符、位运算符和字符串运算符的任意组合;
Min 可用于 numeric、char、varchar、uniqueidentifier 或 datetime 列,但不能用于 bit 列;
2.4 Max 函数返回最大值
Max 函数
返回表达式的最大值;
Max 函数的语法表达式为:
Max([All|Distinct]expression)
All 表示对表达式的所哟值进行聚合计算,Distinct 去除表达式中的重复值;
Distinct 对与 Max 无意义,Expression 可以是常量、列名、函数、算数运算符、位运算符和字符串运算符的任意组合;
Max 可用于 numeric、char、carchar、uniqueidentifier 或 datetime 列;
2.5 Count 函数统计表记录数
Count 函数
用于计算,返回组中的项数,返回 int 数据类型;
若 SELECT 语句中有 WHRER 子句,Count 函数则返回满足 WHERE 条件子句中记录的个数;
Count 函数的语法结构为:
Count({[[All|Distinct]expression]|*})
All 对所有值进行计数统计,Distinct 去除表达式中的重复值和 Null 值,All 为默认值;
Expression 可以是除 text、image 或 ntext 以外任何类型的表达式;
*
表示计算所有行以返回表中行的总数,Count(*) 不需要任何参数,且不能与 Distinct 一起使用;
2.6 Distinct 函数取不重复记录
Distinct 函数
用于删除指定删除指定集中的重复值,并返回结果集;
Distinct 函数的语法为:
Distinct (Expression)
例子 1 :查看全年级的各专业名称
select distinct(b)
from B
使用了 Distinct 函数
的跟没使用的对比如下;
2.7 查询重复记录
用 Having 子句
查询表中的重复记录,该子句能指定分组的过滤条件,它通过常用 Group By 子句
一起使用;
例子1:查询成绩都等于 80 的学生的 ID 和 姓名
select B.ID,Name
from B join O on B.ID = O.ID
group by B.ID,Name,成绩
having 成绩 = 80
select * from O
注意: Select 语句中使用聚合函数时,Select 语句后的字段必须在 Group By 子句或聚合函数中出现,否则系统会提示错误信息;