天天看點

資料庫必知詞彙:聚合函數

聚合函數(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