Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Operatorn Average beräknar medelvärdet av en sekvens med numeriska värden.
Anmärkning
LINQ till SQL-översättningen av Average heltalsvärden beräknas som ett heltal, inte som en dubbel.
Exempel 1
I följande exempel returneras medelvärdet av Freight värden i Orders tabellen.
Resultaten från Northwind-exempeldatabasen skulle vara 78.2442.
System.Nullable<Decimal> averageFreight =
    (from ord in db.Orders
    select ord.Freight)
    .Average();
Console.WriteLine(averageFreight);
Dim averageFreight = Aggregate ord In db.Orders _
                     Into Average(ord.Freight)
Console.WriteLine(averageFreight)
Exempel 2
I följande exempel returneras medelvärdet av enhetspriset för alla Products i Products tabellen.
Resultaten från Northwind-exempeldatabasen skulle vara 28.8663.
System.Nullable<Decimal> averageUnitPrice =
    (from prod in db.Products
    select prod.UnitPrice)
    .Average();
Console.WriteLine(averageUnitPrice);
Dim averageUnitPrice = Aggregate prod In db.Products _
                       Into Average(prod.UnitPrice)
Console.WriteLine(averageUnitPrice)
Exempel 3
I följande exempel används operatorn Average för att hitta de Products vars enhetspris är högre än det genomsnittliga enhetspriset för den kategori som den tillhör. Exemplet visar sedan resultatet i grupper.
Observera att det här exemplet kräver att nyckelordet var används i C#, eftersom returtypen är anonym.
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);
    }
}
Dim priceQuery = From prod In db.Products() _
                 Group prod By prod.CategoryID Into grouping = Group _
                 Select CategoryID, _
                 ExpensiveProducts = _
                     (From prod2 In grouping _
                      Where prod2.UnitPrice > _
                     grouping.Average(Function(prod3) _
                     prod3.UnitPrice) _
                      Select prod2)
For Each grp In priceQuery
    Console.WriteLine(grp.CategoryID)
    For Each listing In grp.ExpensiveProducts
        Console.WriteLine(listing.ProductName)
    Next
Next
Om du kör den här frågan mot Northwind-exempeldatabasen bör resultatet likna följande:
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