Oracle是一款業(yè)界廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)。在日常的數(shù)據(jù)庫(kù)操作中,我們經(jīng)常會(huì)用到一些聚合函數(shù),比如求平均值、求和、最小值、最大值等,它們能夠?qū)Χ鄠€(gè)值進(jìn)行計(jì)算并輸出一個(gè)結(jié)果。本篇文章將重點(diǎn)介紹Oracle中AVG函數(shù)和ROUND函數(shù)的使用。以下是詳細(xì)的介紹。
首先,我們來(lái)看看AVG函數(shù)。AVG函數(shù)用于求某一列的平均數(shù),可以直接用于SELECT語(yǔ)句中。
SELECT AVG(salary) FROM employees;
以上語(yǔ)句的含義是:求出employees表中salary列的平均值。舉個(gè)例子,employees表中有如下數(shù)據(jù):
employee_id | last_name | salary ------------|-----------|------- 1001 | Smith | 5000 1002 | Allen | 5000 1003 | Warden | 3000 1004 | King | 7000 1005 | Turner | 6500
運(yùn)行之后,我們會(huì)得到如下結(jié)果:
AVG(salary) ----------- 5300
這里我們可以看到,AVG函數(shù)已經(jīng)將所有salary的值加起來(lái),然后除以了5,得到了這一組數(shù)據(jù)的平均值。需要注意的是,如果我們的表中存在NULL值,AVG函數(shù)會(huì)自動(dòng)將其忽略掉。如果我們想要顯示有NULL值的列的平均值,可以使用AVG函數(shù)的DISTINCT關(guān)鍵字。
SELECT AVG(DISTINCT salary) FROM employees;
以上語(yǔ)句的含義是:求出employees表中salary列不含重復(fù)值的平均值。
接下來(lái),我們來(lái)看看ROUND函數(shù)。ROUND函數(shù)用于對(duì)某一數(shù)值進(jìn)行四舍五入,可以根據(jù)需要保留幾位小數(shù)點(diǎn)。
SELECT ROUND(5.777, 2) FROM dual;
以上語(yǔ)句的含義是:將5.777四舍五入保留2位小數(shù),輸出結(jié)果。
運(yùn)行之后,我們會(huì)得到如下結(jié)果:
ROUND(5.777, 2) ---------------- 5.78
這里我們可以看到,ROUND函數(shù)將5.777保留兩位小數(shù)后進(jìn)行了四舍五入,得到的結(jié)果是5.78。同樣的,如果我們需要將一個(gè)數(shù)保留整數(shù)或者保留更多位小數(shù),只需要在函數(shù)中傳入相應(yīng)的參數(shù)就可以了。
總結(jié)一下,本篇文章介紹了Oracle中AVG函數(shù)和ROUND函數(shù)的用法。AVG函數(shù)用于求某一列的平均數(shù),ROUND函數(shù)用于進(jìn)行數(shù)值的四舍五入。這兩個(gè)函數(shù)都是在日常數(shù)據(jù)庫(kù)操作中非常常用的聚合函數(shù),掌握它們的用法可以讓我們更加高效地進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)和計(jì)算。