聚合函数(Aggregate Function)是SQL基本函数。聚合函数对一组值执行计算,并返回单个值,也被称为组函数。除COUNT以外,聚合函数忽略空值,如果COUNT函数的应用对象是一个确定列名,并且该列存在空值,此时COUNT仍会忽略空值。
聚合函数经常与 SELECT 语句的 GROUP BY 子句的HAVING一同使用。所有聚合函数都具有确定性。任何时候用一组给定的输入值调用它们时,都返回相同的值。聚合函数可以应用于查询语句的SELECT中,或者HAVING子句中,但不可用于WHERE语句中,因为WHERE是对逐条的行记录进行筛选。聚合函数通常会在下列场合使用:
1、select语句的选择列表,包括子查询和外部查询。
2、使用compute或compute by产生汇总列时。
3、having子句对分组的数据记录进行条件筛选。
SQL Server所使用的Transact-SQL所提供的聚合函数包括APPROX_COUNT_DISTINCT、AVG、CHECKSUM_AGG、COUNT、COUNT_BIG、GROUPING、GROUPING_ID以及MAX等。Oracle提供的聚合函数则包括MIN、MAX、SUM、AVG、COUNT、VARIANCE以及STDDEV等。常用的聚合函数:
(1)avg(x):返回x的平均值
(2)count(x):返回一个包含x的查询返回的行数
(3)max(x):返回x的最大值
(4)min(x):返回x的最小值
(5)median(x):返回x的中间值
(6)stddev(x):返回x的标准差
(7)sum(x):返回x的和
(8)variance(x):返回x的方差
函数 | 描述 |
---|---|
AVG(column) | 返回某列的平均值 |
BINARY_CHECKSUM | |
CHECKSUM | |
CHECKSUM_AGG | |
COUNT(column) | 返回某列的行数(不包括NULL值) |
COUNT(*) | 返回被选行数 |
COUNT(DISTINCT column) | 返回相异结果的数目 |
FIRST(column) | 返回在指定的域中第一个记录的值(SQLServer2000 不支持) |
LAST(column) | 返回在指定的域中最后一个记录的值(SQLServer2000 不支持) |
MAX(column) | 返回某列的最高值 |
MIN(column) | 返回某列的最低值 |
STDEV(column) | |
STDEVP(column) | |
SUM(column) | 返回某列的总和 |
VAR(column) | |
VARP(column) |
资料来源:
Aggregate Functions (Transact-SQL) https://docs.microsoft.com/en-us/sql/t-sql/functions/aggregate-functions-transact-sql?view=sql-server-ver15
Aggregate Functions https://docs.oracle.com/database/121/SQLRF/functions003.htm#SQLRF20035