Compartir a través de


Buscar el valor máximo de una secuencia numérica

Utilice el operador Max para buscar el valor máximo de una secuencia de valores numéricos.

Ejemplo 1

En el ejemplo siguiente se busca la fecha de la última contratación de cualquier empleado.

Si ejecuta esta consulta en la base de datos de ejemplo Northwind, el resultado es: 11/15/1994 12:00:00 AM.

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

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

Console.WriteLine(latestHireDate)

Ejemplo 2

En el ejemplo siguiente se busca el número máximo de unidades en existencias para cualquier producto.

Si ejecuta este ejemplo en la base de datos de ejemplo Northwind, el resultado es: 125.

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

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

Console.WriteLine(maxUnitsInStock)

Ejemplo 3

En el ejemplo siguiente se utiliza Max para encontrar los Products que tienen el precio unitario más alto en cada categoría. En este caso, los resultados se muestran por categoría.

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);
    }
}
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

Si ejecuta la consulta anterior en la base de datos de ejemplo Northwind, los resultados se parecerán a los siguientes:

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

Consulte también