oracle聚合函數(shù)的使用
除了單行函數(shù)之外, 在oracle中還存在另一類函數(shù),那就是oracle聚合函數(shù),下面就讓我們來一起了解一下oracle聚合函數(shù)。
oracle聚合函數(shù)非常有用,主要是用來做些統(tǒng)計(jì)、平均之類的工作。
先簡單介紹一下幾個(gè)常用的oracle聚合函數(shù)。
Count
用來求有效數(shù)據(jù)的數(shù)量
Max
用來求給定數(shù)據(jù)中最大的那一個(gè)數(shù)據(jù)
Min
用來求給定數(shù)據(jù)中最小的那一個(gè)數(shù)據(jù)
Avg
用來求給定數(shù)據(jù)的平均值
Sum
用來求給定數(shù)據(jù)的總和
Variance
用來求給定數(shù)據(jù)的標(biāo)準(zhǔn)差
Stddev
用來求給定數(shù)據(jù)的方差
先面是一些例子和注意事項(xiàng)。
1 .對(duì)于oracle聚合函數(shù),如果給定的值中存在空值的話,oracle將會(huì)直接忽略。
例如,對(duì)于scott的schema中有表emp;
Select count(*) from emp;
將會(huì)得到結(jié)果:
COUNT(*)
———-
14
但是我們注意到在Mgr列中有一列是空值,于是
Select count(mgr) from emp;
將會(huì)得到如下結(jié)果。
select COUNT(MGR)
———-
13
也就是說,oracle忽略了其中的空值。
當(dāng)然對(duì)sum,max,min,avg等其他聚合函數(shù)都是如此。
例如select sum(comm) from emp;將會(huì)自動(dòng)忽略掉一部分空值的數(shù)據(jù)。
2.對(duì)于聚合函數(shù)中可以使用distinct關(guān)鍵字來壓縮重復(fù)值。
比如我們想統(tǒng)計(jì)總共有多少個(gè)部門的話
我們?nèi)绻麑?/p>
Select count(deptno) from emp;
將會(huì)得到錯(cuò)誤的結(jié)果。因?yàn)閷?shí)際上有很多重復(fù)的值也被計(jì)算在內(nèi)。為了找到正確的答案,你應(yīng)該這樣寫。
Select count(distinct deptno) from emp;
【編輯推薦】