次の方法で共有


方法 : 一連の数値の中で最大値を見つける (LINQ to SQL)

一連の数値の中の最大値を見つけるには、Max 演算子を使用します。

使用例

次の例では、従業員の最新の入社日を見つけます。

Northwind サンプル データベースに対してこのクエリを実行した場合の出力は、11/15/1994 12:00:00 AM です。

Dim latestHireDate = Aggregate emp In db.Employees _
                     Into Max(emp.HireDate)

Console.WriteLine(latestHireDate)
System.Nullable<DateTime> latestHireDate =
    (from emp in db.Employees
    select emp.HireDate)
    .Max();

Console.WriteLine(latestHireDate);

次の例では、製品の最大在庫数を見つけます。

Northwind サンプル データベースに対してこのクエリを実行した場合の出力は、125 です。

Dim maxUnitsInStock = Aggregate prod In db.Products _
                      Into Max(prod.UnitsInStock)

Console.WriteLine(maxUnitsInStock)
System.Nullable<Int16> maxUnitsInStock =
    (from prod in db.Products
    select prod.UnitsInStock)
    .Max();

Console.WriteLine(maxUnitsInStock);

次の例では、Max を使用して、各カテゴリ内で単価が最も高い Products を見つけます。 出力では、カテゴリごとに結果の一覧が示されます。

Dim maxQuery = From prod In db.Products() _
    Group prod By prod.CategoryID Into grouping = Group _
    Select CategoryID, _
    MostExpensiveProducts = _
        (From prod2 In grouping _
        Where prod2.UnitPrice = _
        grouping.Max(Function(prod3) prod3.UnitPrice))

For Each grp In maxQuery
    Console.WriteLine(grp.CategoryID)
    For Each listing In grp.MostExpensiveProducts
        Console.WriteLine(listing.ProductName)
    Next
Next
var maxQuery =
    from prod in db.Products
    group prod by prod.CategoryID into grouping
    select new
    {
        grouping.Key,
        MostExpensiveProducts =
            from prod2 in grouping
            where prod2.UnitPrice == grouping.Max(prod3 =>
                prod3.UnitPrice)
            select prod2
    };

foreach (var grp in maxQuery)
{
    Console.WriteLine(grp.Key);
    foreach (var listing in grp.MostExpensiveProducts)
    {
        Console.WriteLine(listing.ProductName);
    }
}

Northwind サンプル データベースに対してこのクエリを実行すると、結果は次のようになります。

1

Côte de Blaye

2

Vegie-spread

3

Sir Rodney's Marmalade

4

Raclette Courdavault

5

Gnocchi di nonna Alice

6

Thüringer Rostbratwurst

7

Manjimup Dried Apples

8

Carnarvon Tigers

参照

概念

サンプル データベースのダウンロード (LINQ to SQL)

その他の技術情報

集計クエリ (LINQ to SQL)