聚合函數(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-ver15Aggregate Functions
https://docs.oracle.com/database/121/SQLRF/functions003.htm#SQLRF20035