基本内容
一種函數,它對一組行中的某個列執行計算,并返回單個值。
所有聚合函數都具有确定性。任何時候用一組給定的輸入值調用它們時,都返回相同的值。有關函數确定性的更多信息,請參見确定性函數和非确定性函數。
僅在下列項中聚合函數允許作為表達式使用:
SELECT 語句的選擇列表(子查詢或外部查詢)。
COMPUTE 或 COMPUTE BY 子句。
HAVING 子句。
Transact-SQL 編程語言提供下列聚合函數:
AVG MAX
BINARY_CHECKSUM MIN
CHECKSUM SUM
CHECKSUM_AGG STDEV
COUNT STDEVP
COUNT_BIG VAR
GROUPING VARP
應用
Transact-SQL編程語言提供下列聚合函數:
AVG 返回指定組中的平均值,空值被忽略。
例:select prd_no,avg(qty) from sales group by prd_no
2. COUNT 返回指定組中項目的數量。
例:select count(prd_no) from sales
3. MAX 返回指定數據的最大值。
例:select prd_no,max(qty) from sales group by prd_no
4. MIN 返回指定數據的最小值。
例:select prd_no,min(qty) from sales group by prd_no
5. SUM 返回指定數據的和,隻能用于數字列,空值被忽略。
例:select prd_no,sum(qty) from sales group by prd_no
6. COUNT_BIG 返回指定組中的項目數量,與COUNT函數不同的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
例:select count_big(prd_no) from sales
7. GROUPING 産生一個附加的列,當用CUBE或ROLLUP運算符添加行時,輸出值為1.當所添加的行不是由CUBE或ROLLUP産生時,輸出值為0.
例:select prd_no,sum(qty),grouping(prd_no) from sales group by prd_no with rollup
8. BINARY_CHECKSUM 返回對表中的行或表達式列表計算的二進制校驗值,用于檢測表中行的更改。
例:select prd_no,binary_checksum(qty) from sales group by prd_no
9. CHECKSUM_AGG 返回指定數據的校驗值,空值被忽略。
例:select prd_no,checksum_agg(binary_checksum(*)) from sales group by prd_no
10. CHECKSUM 返回在表的行上或在表達式列表上計算的校驗值,用于生成哈希索引。
11. STDEV 返回給定表達式中所有值的統計标準偏差。
例:select stdev(prd_no) from sales
12. STDEVP 返回給定表達式中的所有值的填充統計标準偏差。
例:select stdevp(prd_no) from sales
13. VAR 返回給定表達式中所有值的統計方差。
例:select var(prd_no) from sales
14. VARP 返回給定表達式中所有值的填充的統計方差。
例:select varp(prd_no) from sales
确定函數
SQL Server 内置函數可以是确定的或是不确定的。如果任何時候用一組特定的輸入值調用内置函數,返回的結果總是相同的,則這些内置函數為确定的。如果每次調用内置函數時,即使用的是同一組特定輸入值,也總返回不同結果,則這些内置函數為不确定的。
排序規則
使用字符串輸入并返回字符串輸出的函數,對輸出使用輸入字符串的排序規則。
使用非字符輸入并返回字符串的函數對輸出使用當前數據庫的默認排序規則。
使用多個字符串輸入并返回字符串的函數,使用排序規則的優先順序規則設置輸出字符串的排序規則。有關詳細信息,請參閱排序規則優先級 (Transact-SQL)。
拓展資料
Sql Server 有如下幾種聚合函數SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN,但是這些函數都隻能聚合數值類型,無法聚合字符串。利用SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN是無法做到的。因為這些都是對數值的聚合。不過可以通過自定義函數的方式來解決這個問題。