返回組中值的平均值??罩祵⒈缓雎?。
AVG ( [ ALL | DISTINCT ] expression )
ALL
對所有的值進行聚合函數(shù)運算。ALL 是默認設(shè)置。
DISTINCT
指定 AVG 操作只使用每個值的唯一實例,而不管該值出現(xiàn)了多少次。
expression
精確數(shù)字或近似數(shù)字數(shù)據(jù)類型類別的表達式(bit 數(shù)據(jù)類型除外)。不允許使用聚合函數(shù)和子查詢。
返回類型由表達式的運算結(jié)果類型決定。
表達式結(jié)果 | 返回類型 |
---|---|
整數(shù)分類 | int |
decimal 分類 (p, s) | decimal(38, s) 除以 decimal(10, 0) |
money 和 smallmoney 分類 | money |
float 和 real 分類 | float |
重要 當使用 CUBE 或 ROLLUP 時,不支持非重復聚合,例如 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™ 將返回錯誤信息并取消查詢。
下例計算所有商業(yè)類書籍的平均預(yù)付款和本年度迄今為止的銷售額。對檢索到的所有行,每個聚合函數(shù)都生成一個單獨的匯總值。
USE pubs
SELECT AVG(advance), SUM(ytd_sales)
FROM titles
WHERE type = 'business'
下面是結(jié)果集:
-------------------------- -----------
6,281.25 30788
(1 row(s) affected)
當與 GROUP BY 子句一起使用時,每個聚合函數(shù)都為每一組生成一個值,而不是對整個表生成一個值。下例對每一類書生成匯總值,這些值包括每一類書的平均預(yù)付款以及每一類書本年度迄今為止的銷售總額。
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è)類書籍的平均價格。
USE pubs
SELECT AVG(DISTINCT price)
FROM titles
WHERE type = 'business'
下面是結(jié)果集:
--------------------------
11.64
(1 row(s) affected)
如果不使用 DISTINCT,AVG 函數(shù)將計算出 titles 表中所有商業(yè)類書籍的平均價格。
USE pubs
SELECT AVG(price)
FROM titles
WHERE type = 'business'
下面是結(jié)果集:
--------------------------
13.73
(1 row(s) affected)
相關(guān)文章