SQL中的聚合函數介紹

SQL中的聚合函數介紹

什麼是聚合函數(aggregate function)?

聚合函數對一組值執行計算並返回單一的值。

SQL中的聚合函數介紹

聚合函數有什麼特點?

  1. 除了 COUNT 以外,聚合函數忽略空值。
  2. 聚合函數經常與 SELECT 語句的 GROUP BY 子句一同使用。
  3. 所有聚合函數都具有確定性。任何時候用一組給定的輸入值調用它們時,都返回相同的值。
  4. 標量函數:只能對單個的數字或值進行計算。主要包括字符函數、日期/時間函數、數值函數和轉換函數這四類。
SQL中的聚合函數介紹

常見的聚合函數有哪些?

1、求個數/記錄數/項目數等:count()

例如: 統計員工個數?

select count( ) from Company --包括空值
select count(*) from Company --不包括空值

2、求某一列平均數 :avg()

例如:求某個班平均成績 ?求某個公司員工的平均工資?

select avg(score) from Scores ---平均成績
select avg(salary) from Company --平均工資

注意:

若某行的score值為null時,計算平均值時會忽略帶有null值得那一行。

如果想要把null當做0,那麼可以使用IsNull函數把null轉換成0,語法如下:

 avg(IsNull(score,0)) as ’Average Score‘

3、求總和,總分等:sum() --必須為數字列

例如:求某個班的總成績?求公司總薪資支出?

select sum(score) from Scores
select sum(salary) from Company

4、求最大值,最高分,最高工資等:max()

例如:求班裡最高分,公司員工最高工資?

select max(Score) from Scores
select max(salary) from Company

5、求最小值,最低分,最低工資等:max()

例如:求班裡最低分,公司員工最低工資?

select min(Score) from Scores
select min(salary) from Company
SQL中的聚合函數介紹

聚合函數怎麼正確的使用?

  • 1、 select 語句的選擇列表(子查詢或外部查詢);
  • 2、having 子句;
  • 3、compute 或 compute by 子句中等;

注意: 在實際應用中,聚合函數常和分組函數group by結合使用,用來查詢.where 子句的作用對象一般只是行,用來作為過濾數據的條件。

SQL中的聚合函數介紹

其他聚合函數(aggregate function)

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

本文部分來自網絡,如有錯誤,敬請指正,如有侵權,請聯繫修改。


分享到:


相關文章: