AVG (Transact-SQL)
Bir gruptaki değerlerin ortalamasını verirBoş değerler yoksayılır.Tarafından izlenmesi gereken ÜZERINDE yan tümce.
AVG ( [ ALL | DISTINCT ] expression )
Bağımsız değişkenler
ALL
toplamak işlev, tüm değerlere uygulanır.ALL varsayılan olur.DISTINCT
Ortalama değerin kaç kez bakılmaksızın, değeri, yalnızca benzersiz her örnek gerçekleştirilmesini belirtir.expression
Iş bir ifade haricinde tam sayısal veya yaklaşık sayısal veri türü kategorisibit veri türü. toplamak işlevleri ve alt sorgular izin verilmez.
Dönüş Türleri
Dönüş türü Değerlendirilmiş sonucu türüne göre belirlenir expression.
Ifadenin sonucu |
Dönüş türü |
---|---|
tinyint |
int |
smallint |
int |
int |
int |
bigint |
bigint |
decimal Kategori (p, s) |
decimal(38, s) bölü decimal(10, 0) |
money ve smallmoney Kategori |
money |
float ve real Kategori |
float |
Remarks
Veri türü, expression bir diğer ad veri türü, dönüş türü de diğer veri türüdür. Temel veri türü, ancak diğer ad ad veri türünü, örneğin yükseltilir tinyint için int, dönüş değeri yükseltilen veridir diğer ad ad veri türü değil.
AVG () ortalamasını hesaplayan bir küme tarafından bu değerlerin toplamını nonnull değerlerin sayımla bölme değerler.Toplam sonuç değerinin veri türü için en büyük değeri aşıyor, bir hata döndürdü.
Örnekler
C.Hesaplamalar için SUM ve AVG işlevlerini kullanma
Aşağıdaki örnek, saatlerin ortalama tatil ve hastalık toplamı saat bırakın hesaplar, Başkan presidents Adventure Works Cycles kullandınız. toplamak bu işlevlerden her biri, alınan tüm satırlar için tek bir Özet değer üretir.
USE AdventureWorks;
GO
SELECT AVG(VacationHours)as 'Average vacation hours',
SUM (SickLeaveHours) as 'Total sick leave hours'
FROM HumanResources.Employee
WHERE Title LIKE 'Vice President%';
Here is the result set.
Ortalama tatil saatleri toplam Hastalık saat
---------------------- ----------------------
25 97
(1 satırları etkilenen)
b.Bir GROUP BY yan tümce ile TOPLAM ve ORTALAMA işlevlerini kullanma
Aşağıdakilerle kullanıldığında bir GROUP BY yan tümce, her bir toplamak işlev her grup için tek bir değer yerine bütün tablo için oluşturur. Aşağıdaki örnek, her bir satış bölgesi için Özet değerleri oluşturur.Özet ortalama Primin satış kişilerin her bölge ve her bölge için yıl, tarih satış toplamı alınan listeler.
USE AdventureWorks;
GO
SELECT TerritoryID, AVG(Bonus)AS 'Average bonus', SUM(SalesYTD) AS 'YTD sales'
FROM Sales.SalesPerson
GROUP BY TerritoryID;
GO
c.AVG ile DISTINCT kullanma
Aşağıdaki deyim ürünler ortalama liste fiyatını verir.
USE AdventureWorks;
GO
SELECT AVG(DISTINCT ListPrice)
FROM Production.Product;
Here is the result set.
------------------------------
437.4042
(1 satırları etkilenen)
d.AVG DISTINCT olmadan kullanma
DISTINCT, olmadan AVG Tüm ürünler, liste fiyatını ortalama işlev bulur Product Tablo.
USE AdventureWorks;
GO
SELECT AVG(ListPrice)
FROM Production.Product;
Here is the result set.
------------------------------
438.6662
(1 satırları etkilenen)