返回組中值的平均值。空值將被忽略。
AVG ( [ ALL | DISTINCT ] expression )
ALL
對(duì)所有的值進(jìn)行聚合函數(shù)運(yùn)算。ALL 是默認(rèn)設(shè)置。
DISTINCT
指定 AVG 操作只使用每個(gè)值的唯一實(shí)例,而不管該值出現(xiàn)了多少次。
expression
精確數(shù)字或近似數(shù)字?jǐn)?shù)據(jù)類(lèi)型類(lèi)別的表達(dá)式(bit 數(shù)據(jù)類(lèi)型除外)。不允許使用聚合函數(shù)和子查詢(xún)。
返回類(lèi)型由表達(dá)式的運(yùn)算結(jié)果類(lèi)型決定。
表達(dá)式結(jié)果 | 返回類(lèi)型 |
---|---|
整數(shù)分類(lèi) | int |
decimal 分類(lèi) (p, s) | decimal(38, s) 除以 decimal(10, 0) |
money 和 smallmoney 分類(lèi) | money |
float 和 real 分類(lèi) | float |
重要 當(dāng)使用 CUBE 或 ROLLUP 時(shí),不支持非重復(fù)聚合,例如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用了 CUBE 或 ROLLUP,Microsoft® SQL Server™ 將返回錯(cuò)誤信息并取消查詢(xún)。
下例計(jì)算所有商業(yè)類(lèi)書(shū)籍的平均預(yù)付款和本年度迄今為止的銷(xiāo)售額。對(duì)檢索到的所有行,每個(gè)聚合函數(shù)都生成一個(gè)單獨(dú)的匯總值。
USE pubs
SELECT AVG(advance), SUM(ytd_sales)
FROM titles
WHERE type = 'business'
下面是結(jié)果集:
-------------------------- -----------
6,281.25 30788
(1 row(s) affected)
當(dāng)與 GROUP BY 子句一起使用時(shí),每個(gè)聚合函數(shù)都為每一組生成一個(gè)值,而不是對(duì)整個(gè)表生成一個(gè)值。下例對(duì)每一類(lèi)書(shū)生成匯總值,這些值包括每一類(lèi)書(shū)的平均預(yù)付款以及每一類(lèi)書(shū)本年度迄今為止的銷(xiāo)售總額。
USE pubs
SELECT type, AVG(advance), SUM(ytd_sales)
FROM titles
GROUP BY type
ORDER BY type
下面是結(jié)果集:
type
------------ -------------------------- -----------
business 6,281.25 30788
mod_cook 7,500.00 24278
popular_comp 7,500.00 12875
psychology 4,255.00 9939
trad_cook 6,333.33 19566
UNDECIDED NULL NULL
(6 row(s) affected)
下列語(yǔ)句返回商業(yè)類(lèi)書(shū)籍的平均價(jià)格。
USE pubs
SELECT AVG(DISTINCT price)
FROM titles
WHERE type = 'business'
下面是結(jié)果集:
--------------------------
11.64
(1 row(s) affected)
如果不使用 DISTINCT,AVG 函數(shù)將計(jì)算出 titles 表中所有商業(yè)類(lèi)書(shū)籍的平均價(jià)格。
USE pubs
SELECT AVG(price)
FROM titles
WHERE type = 'business'
下面是結(jié)果集:
--------------------------
13.73
(1 row(s) affected)
相關(guān)文章