MSSQL 常用的聚合函数
2016-01-21 11:38
337 查看
一、为何使用聚合函数
我们如何计算成绩表中存储了所有学生的成绩,想知道:学生的总成绩、平均成绩、最高分,最低分等等。
二、什么是聚合函数
对一组值进行计算,并返回计算后的值,具有统计数据的作用。
三、何时使用聚合函数
1、select语句的选择列表,包括子查询和外部查询。
2、使用计算或group by产生汇总列时。
3、having子句对分组的数据记录进行条件筛选。
四、常用聚合函数如下:
1、平均值AVG
AVG函数用于计算精确型或近似型数据类型的平均值,bit类型除外,忽略null值。
AVG函数计算时将计算一组数的总和,然后除以为null的个数,得到平均值。
语法结构:
示例:select
avg(distinct
studentResult) from
result--
查询result表里的成绩的平均值,相同值只计算一次
2、求和值SUM
SUM函数用于求和,只能用于精确或近似数字类型列(bit类型除外),忽略null值,
不允许使用聚合函数和子查询。
1、语法结构:
示例:
3、最小值MIN
MIN函数用于计算最小值,MIN函数可以适用于numeric、char、varchar或datetime、money或smallmoney列,但不能用于bit列。
不允许使用聚合函数和子查询,忽略null值。
语法结构:
示例:
4、最大值MAX
MAX函数用于计算最大值,忽略null值。max函数可以使用于numeric、char、varchar、money、smallmoney、或datetime列,
但不能用于bit列。不允许使用聚合函数和子查询。
语法结构:
示例:
5、统计项数值count(count_big)
count函数用于计算满足条件的数据项数,返回int数据类型的值。
1、语法结构:
这里的表达式是除text、image或ntext以外任何数据类型的表达式。但不允许使用聚合函数和子查询。
2、常见使用方法
count(*) : 返回所有的项数,包括null值和重复项。而除了count(*)外,其他任何形式的count()函数都会忽略Null行。
除了Count(*)函数外,其他任何聚合函数都会忽略NULL值,
也就是说,AVG()参数里的值如果为Null则这一行会被忽略如计算平均值,这点要注意。
count(all表达式):返回非空的项数。
count(distinct表达式):返回唯一非空的项数
count_big的语法与count完全一样,只不过返回值为bigint数据类型,这样返回的数值范围就可以大大超过count。
注意:count(字段名),如果字段名为NULL,则count函数不会统计。例如count(name),如果name为空,则不会统计到结果。
示例:
我们如何计算成绩表中存储了所有学生的成绩,想知道:学生的总成绩、平均成绩、最高分,最低分等等。
二、什么是聚合函数
对一组值进行计算,并返回计算后的值,具有统计数据的作用。
三、何时使用聚合函数
1、select语句的选择列表,包括子查询和外部查询。
2、使用计算或group by产生汇总列时。
3、having子句对分组的数据记录进行条件筛选。
四、常用聚合函数如下:
1、平均值AVG
AVG函数用于计算精确型或近似型数据类型的平均值,bit类型除外,忽略null值。
AVG函数计算时将计算一组数的总和,然后除以为null的个数,得到平均值。
语法结构:
avg( [ all | distinct ] expression )
说明: all:为默认值,表示对所用的数据都计算平均值。 distinct:每个值的唯一值计算平均值,不管相同的值出现多次,多个行相同的值仅仅出现一次作为计算。 expression:精确或近似值的表达式。表达式内部不允许使用子查询和其他聚合函数。
示例:select
avg(distinct
studentResult) from
result--
查询result表里的成绩的平均值,相同值只计算一次
2、求和值SUM
SUM函数用于求和,只能用于精确或近似数字类型列(bit类型除外),忽略null值,
不允许使用聚合函数和子查询。
1、语法结构:
SUM ( [ all | distinct ] expression )
示例:
select sum(studentResult) from result -- 查询result表里的成绩的总和
3、最小值MIN
MIN函数用于计算最小值,MIN函数可以适用于numeric、char、varchar或datetime、money或smallmoney列,但不能用于bit列。
不允许使用聚合函数和子查询,忽略null值。
语法结构:
MIN( [ all | distinct ] expression )
示例:
select min(studentResult) from result -- 查询result表里的成绩最低分
4、最大值MAX
MAX函数用于计算最大值,忽略null值。max函数可以使用于numeric、char、varchar、money、smallmoney、或datetime列,
但不能用于bit列。不允许使用聚合函数和子查询。
语法结构:
MAX ( [ all | distinct ] expression )
示例:
select max(studentResult) from result -- 查询result表里的成绩最高分
5、统计项数值count(count_big)
count函数用于计算满足条件的数据项数,返回int数据类型的值。
1、语法结构:
count( {[[ all | distinct] expression ] | * } )
这里的表达式是除text、image或ntext以外任何数据类型的表达式。但不允许使用聚合函数和子查询。
2、常见使用方法
count(*) : 返回所有的项数,包括null值和重复项。而除了count(*)外,其他任何形式的count()函数都会忽略Null行。
除了Count(*)函数外,其他任何聚合函数都会忽略NULL值,
也就是说,AVG()参数里的值如果为Null则这一行会被忽略如计算平均值,这点要注意。
count(all表达式):返回非空的项数。
count(distinct表达式):返回唯一非空的项数
count_big的语法与count完全一样,只不过返回值为bigint数据类型,这样返回的数值范围就可以大大超过count。
注意:count(字段名),如果字段名为NULL,则count函数不会统计。例如count(name),如果name为空,则不会统计到结果。
示例:
select count(distinct studentresult) from result -- 查询result表里的成绩唯一且非空的个数
相关文章推荐
- 在安装discuz!nt时,数据库用户登录失败的问题时,sql server 2008 数据库更改登录模式(sql server 2008 混合登陆中SqlServer身份验证用户名密码)
- SQL 数据库的连接查询
- mysql 存储过程传出参数
- mySQL特性安装以及基本操作
- Oracle 10g 后的闪回技术
- 基于PaaS平台批量初始化普通用户信息方法整理
- MySQL半同步复制配置
- 数据库基础
- Sql—substr()
- Mysql常用的命令
- Lucene:实现数据库的全文检索
- sql语句
- is not allowed to connect to this MySQL server解决办法
- 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
- oracle的查询结果按照in条件顺序输出
- PLSQL乱码解决方案
- 安装sakila数据库
- Sql—Date相关
- MySQL索引的创建、删除和查看
- redis学习笔记二之java调用redis