聚合函數
聚合函數
SQL基本函數,聚合函數對一組值執行計算,並返回單個值。除了COUNT以外,聚合函數都會忽略空值。聚合函數經常與SELECT語句的GROUP BY子句一起使用。
聚合函數對一組值執行計算並返回單一的值。除COUNT以外,聚合函數忽略空值,如果COUNT函數的應用對象是一個確定列名,並且該列存在空值,此時COUNT仍會忽略空值。
所有聚合函數都具有確定性。任何時候用一組給定的輸入值調用它們時,都返回相同的值。聚合函數可以應用於查詢語句的SELECT中,或者HAVING子句中,但不可用於WHERE語句中,因為WHERE是對逐條的行記錄進行篩選。
Transact-SQL編程語言提供下列聚合函數:
1.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