영어로 읽기

다음을 통해 공유


숫자 시퀀스에서 평균 값 반환

Average 연산자는 숫자 값 시퀀스의 평균을 계산합니다.

참고

정수 값의 Average에 대한 LINQ to SQL 변환은 double이 아닌 정수로 계산됩니다.

예 1

다음 예제에서는 Freight 테이블에서 Orders 값의 평균을 반환합니다.

샘플 Northwind 데이터베이스의 결과는 78.2442입니다.

C#
System.Nullable<Decimal> averageFreight =
    (from ord in db.Orders
    select ord.Freight)
    .Average();

Console.WriteLine(averageFreight);

예제 2

다음 예제에서는 Products 테이블에 있는 모든 Products 단가의 평균을 반환합니다.

샘플 Northwind 데이터베이스의 결과는 28.8663입니다.

C#
System.Nullable<Decimal> averageUnitPrice =
    (from prod in db.Products
    select prod.UnitPrice)
    .Average();

Console.WriteLine(averageUnitPrice);

예 3

다음 예제에서는 Average 연산자를 사용하여 제품의 단가가 제품 범주가 속한 단가의 평균보다 비싼 Products를 찾습니다. 그룹으로 결과가 표시됩니다.

이 예제는 반환 형식이 익명이기에 C#에서는 var 키워드를 사용해야 합니다.

C#
var priceQuery =
    from prod in db.Products
    group prod by prod.CategoryID into grouping
    select new
    {
        grouping.Key,
        ExpensiveProducts =
            from prod2 in grouping
            where prod2.UnitPrice > grouping.Average(prod3 =>
                prod3.UnitPrice)
        select prod2
    };

foreach (var grp in priceQuery)
{
    Console.WriteLine(grp.Key);
    foreach (var listing in grp.ExpensiveProducts)
    {
        Console.WriteLine(listing.ProductName);
    }
}

Northwind 샘플 데이터베이스에 대한 이 쿼리를 실행할 경우 결과는 다음과 비슷합니다.

1

Côte de Blaye

Ipoh Coffee

2

Grandma's Boysenberry Spread

Northwoods Cranberry Sauce

Sirop d'érable

Vegie-spread

3

Sir Rodney's Marmalade

Gumbär Gummibärchen

Schoggi Schokolade

Tarte au sucre

4

Queso Manchego La Pastora

Mascarpone Fabioli

Raclette Courdavault

Camembert Pierrot

Gudbrandsdalsost

Mozzarella di Giovanni

5

Gustaf's Knäckebröd

Gnocchi di nonna Alice

Wimmers gute Semmelknödel

6

Mishi Kobe Niku

Thüringer Rostbratwurst

7

Rössle Sauerkraut

Manjimup Dried Apples

8

Ikura

Carnarvon Tigers

Nord-Ost Matjeshering

Gravad lax

참고 항목