연산자를 Max 사용하여 숫자 값 시퀀스에서 가장 높은 값을 찾습니다.
예제 1
다음 예제에서는 모든 직원의 최신 고용 날짜를 찾습니다.
샘플 Northwind 데이터베이스에 대해 이 쿼리를 실행하는 경우 출력은 다음과 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)
예제 2
다음 예제에서는 모든 제품의 재고가 가장 많은 단위를 찾습니다.
샘플 Northwind 데이터베이스에 대해 이 예제를 실행하면 출력은 다음과 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)
예제 3
다음 예제에서는 Max를 사용하여 각 범주에서 Products
단가가 가장 높은 값을 찾습니다. 그런 다음 출력은 범주별로 결과를 나열합니다.
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
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
참고하십시오
- 집계 쿼리
- 샘플 데이터베이스 다운로드하는