2017-02-28 51 views
1

如何在linq中寫入?如何選擇最高支數,總和

//The store with the most occurrence 
SELECT TOP 1 [StoreName], COUNT(*) 
FROM [Xpenses] 
GROUP BY [StoreName] 
ORDER BY COUNT(*) DESC 

//The store where the user spent the most overall 
SELECT TOP 1 [StoreName], SUM([Price]) 
FROM [Xpenses] 
GROUP BY [StoreName] 
ORDER BY COUNT(*) DESC 

感謝您的幫助

+0

對不起,我忽略了這個事實。請參閱編輯 – Richard77

回答

3

你可以這樣做:

//First create part of your query you can reuse 
var query=Xpenses.GroupBy(x=>x.StoreName); 

var MostOccurrence=query.Select(g=>new {Store=g.Key,Count= g.Count()}) 
         .OrderByDescending(r=r.Count).FirstOrDefault(); 

var MostOverall=query.Select(g=>new {Store=g.Key,Sum= g.Sum(f=>f.Price)}) 
        .OrderByDescending(r=r.Sum).FirstOrDefault();