2017-02-28 95 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();