聚合函數(shù)
-
COUNT函數(shù)---統(tǒng)計(jì)個(gè)數(shù)
SELECT COUNT(*) AS N'員工數(shù)量' FROM EMP;
-
MAX函數(shù)---求最大值
SELECT MAN(SALARY) FROM EMP;
-
MIN函數(shù)---求最小值
SELECT MIN(SALARY) FROM EMP;
-
SUM函數(shù)---求和
SELECT SUM(SALARY) FROM EMP;
-
AVG函數(shù)---求平均值
SELECT AVG(SALARY) FROM EMP;
-
什么是聚合函數(shù)
查詢時(shí)需要做一些數(shù)據(jù)統(tǒng)計(jì),比如:查詢職員表中各部門職員的平均薪水,各部門的員工人數(shù)。當(dāng)需要統(tǒng)計(jì)的數(shù)據(jù)并不能在職員表里只管列出,而是需要根據(jù)現(xiàn)有的數(shù)據(jù)計(jì)算得到結(jié)果,這種功能可以使用聚合函數(shù)來實(shí)現(xiàn),即:將表的全部書庫劃分為幾組數(shù)據(jù),每組數(shù)據(jù)統(tǒng)計(jì)出一個(gè)結(jié)果。
因?yàn)槭嵌嘈袛?shù)據(jù)參與運(yùn)算返回一行結(jié)果,也稱作分組函數(shù)、多行函數(shù)、集合函數(shù)。用到的關(guān)鍵字:
GROUP BY 按什么分組
HAVING 進(jìn)一步限制分組結(jié)果
-
MAN和MIN
用來取得列或者表達(dá)式的最大、最小值??梢杂脕斫y(tǒng)計(jì)任何數(shù)據(jù)類型,包括數(shù)字、字符和日期。
示例:獲取機(jī)構(gòu)下的最高薪水和最低薪水,參數(shù)是數(shù)字
SELECT MAN(SAL)MAN_SAL,MIN(SAL)MIN_SAL FROM EMP;
計(jì)算最早和最晚的入職時(shí)間,參數(shù)是日期
SELECT MAN(DIREDATE)MAN_HIRE,MIN(HIREDATE)MIN_HIRE FROM EMP;
-
AVG和SUM
AVG和SUM函數(shù)用來統(tǒng)計(jì)列或表達(dá)式的平均值和和值,這兩個(gè)函數(shù)只能操作數(shù)字類型,并忽略NULL值。
SELECT AVG(SAL)AVG_SAL,SUM(SAL)SUM_SAL FROM EMP;
-
COUNT
COUNT函數(shù)用來計(jì)算表中的記錄條數(shù),他同樣忽略NULL值。
示例:獲取職員表中一共有多少名職員記錄
SELECT COUNT(*)TOTAL_NUM FROM EMP;
獲得職員表中有多少人是有職位的(忽略沒有職位的員工記錄)
SELECT COUNT(JOB)TOTAL_JOB FROM EMP;
-
聚合函數(shù)對(duì)控制的處理
聚合函數(shù)忽略NULL值。即當(dāng)EMP表中的某列有NULL值。
示例:某新入職員工沒有薪水,比較兩條語句的結(jié)果
SELECT AVG(SAL) AVG_SAL FROM EMP;
SELECT AVG(ISNULL(SAL,0.0)) AVG_SAL FROM EMP;