SQL Server 数据库之聚合函数

1. 概述

聚合函数又称为统计函数或汇总函数,它对一组值进行计算并返回一个数值,是 SQL 中国能使用较多的一类函数,对数据实现更加丰富的操作;
聚合函数常与 SELECT 语句一起使用;

2. 聚合函数

聚合函数对一组值进行计算,通常用于数据统计;聚合函数经常与 SELECT 语句的 Group By 子句一起使用;
除了 Count 以外,聚合函数丢回忽略空值,SQL Server 数据库共有十多种聚合函数;
20220406

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

20220407
使用了 Distinct 函数的跟没使用的对比如下;
20220407

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

20220407
注意: Select 语句中使用聚合函数时,Select 语句后的字段必须在 Group By 子句或聚合函数中出现,否则系统会提示错误信息;

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值