聚合函数的定义,按照百度的说法来说,就是聚合函数对一组值执行计算并返回单一的值。除COUNT以外,聚合函数忽略空值,如果COUNT函数的应用对象是一个确定的列名,并且该列存在空值,此时COUNT仍会忽略空值。
聚合函数经常与select语句的GROUP BY子句的HAVING一同使用。聚合函数的性质,所有聚合函数都具有确定性。任何时候用一组给定的输入值调用它们时,都返回相同的值。聚合函数可以应用于查询语句的SELECT中,或者HAVING子句中,但不可用WHERE语句中,因为WHERE是对逐条的行记录进行筛选。
常用的聚合函数有以下几种:①count:行数、②sum:总和(求总和)、③avg:平均值、④max:最大值、⑤min:最小值
SQL语句的执行顺序:
1、首先执行from子句;
2、如果有where子句,则根据其中的过滤条件 从中间表中去掉不满足过滤条件的行;
3、根据group by 子句中指定的分组列;
4、为每个组计算select 子句聚合函数的值 并为每组生成查询结果中的一行。
Transact-SQL编程语言提供下列聚合函数:
1.AVG 返回指定组中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no
- COUNT 返回指定组中项目的数量。
例:select count(prd_no) from sales - MAX 返回指定数据的最大值。
例:select prd_no,max(qty) from sales group by prd_no - MIN 返回指定数据的最小值。
例:select prd_no,min(qty) from sales group by prd_no - SUM 返回指定数据的和,只能用于数字列,空值被忽略。
例:select prd_no,sum(qty) from sales group by prd_no - COUNT_BIG 返回指定组中的项目数量,与COUNT函数不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
例:select count_big(prd_no) from sales - GROUPING 产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.
例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup - BINARY_CHECKSUM 返回对表中的行或表达式列表计算的二进制校验值,用于检测表中行的更改。
例:select prd_no,binary_checksum(qty) from sales group by prd_no - CHECKSUM_AGG 返回指定数据的校验值,空值被忽略。
例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no - CHECKSUM 返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引。
- STDEV 返回给定表达式中所有值的统计标准偏差。
例:select stdev(prd_no) from sales - STDEVP 返回给定表达式中的所有值的填充统计标准偏差。
例:select stdevp(prd_no) from sales - VAR 返回给定表达式中所有值的统计方差。
例:select var(prd_no) from sales - VARP 返回给定表达式中所有值的填充的统计方差。
例:select varp(prd_no) from sales