2014-11-19 3 views
0

기본적으로 특정 행이 사용될 때마다 횟수를 계산하는 내 쿼리에 대한 논리를 계획하려고합니다 (시간이 필요하지 않거나 필요한 제품의 수를 필요로하지 않습니다) 대부분의 행 값을 사용)가장 인기있는 행을 쿼리

예 :.

내가 구입 한 테이블 내가 지금이 테이블을 조회하려고 'PRODUCT_ID' 라는 행을 가지고 구매를, 같은 PRODUCT_ID 사용 횟수 발견 product_id가 사용 된 가장 많은 시간만큼 질의를 순서화하십시오.

나는 몇 가지 시도를 해봤지만 실제 논리에서는 약간의 상실감이 있습니다. 그래서 내가 시도한 것이 작동하지 않는다는 것을 완전히 이해합니다. (내 머리에 이해가 가지 않지만, 소지품).

 var grabProducts = db.fixed_purchases.GroupBy(fp => fp.product_id) 
      .Select(fp => new fixed_purchases 
      { 
       Count = fp.Count() 
      }).ToList(); 

제가 지금 할 수있는 최선입니다. 다시 말하지만, 논리는 내가 잃어버린 곳입니다. 나는 반드시 답을 필요로하지 않지만 논리는 잘 할 것입니다.

저는 ASP C# Linq를 사용하고 있습니다 만, 이것이 SQL 질문이므로 전혀 중요하지 않으므로 Linq를 보지 말고 적어도 제가 시도한 코드를 게시하고 싶습니다.

답변

1

당신은 그들의 계산에 따라 그룹을 정렬 할 GroupByOrderBy 절을 필요

: 당신이 제품 ID의 내림차순으로 정렬을 얻으려면 다음

var grabProducts = db.fixed_purchases 
       .GroupBy(fp => fp.product_id) 
       .OrderByDescending(g => g.Count()); 

, 당신은 Select을 추가 할 수 있습니다

var grabProducts = db.fixed_purchases 
       .GroupBy(fp => fp.product_id) 
       .OrderByDescending(g => g.Count()) 
       .Select(g => g.Key) 
       .ToList(); 
+0

아 .. 나는 어리 석다. 나는 OrderBy (Count())를 할 수 있는지 몰랐다. 고마워, 고마워. –

관련 문제