2017-01-28 132 views
0

爲了我只是想這樣做,SQL Linq中。但是如何?LINQ的GROUP BY和總和

Select Id, sum(Count) 
from dbo.BThread 
group by Id 
order by sum(Count) desc 

我試過了,失敗了:結果只給出了一行。我希望有更多的行比這更多。我需要總結許多ID。

var List = (from tbBThread in context.BThread.Take(10) 
       group tbBThread by tbBThread.Id into bTmp 
       orderby bTmp.Sum(x => x.Count) 
       select new BViewModel 
       { 
        Id = bTmp.Key, 
        Id = bTmp.First().Id, 
        Count = bTmp.Sum(x => x.Count) 
       }).ToList(); 
+0

刪除第二個'編號= bTmp.First()(同上),' – Slai

+0

你能說明什麼問題呢? – SeduceAdmin

+0

我不知道是什麼問題,因爲你剛纔提到它失敗沒有什麼失敗(提示:添加更多細節的問題)的任何細節,但你不能有2'Id'在選擇 – Slai

回答

0

Take(10)應該在你的查詢結束。

var List = (from tbBThread in context.BThread 
      group tbBThread by tbBThread.Id into bTmp 
      orderby bTmp.Sum(x => x.Count) 
      select new BViewModel 
      { 
       Id = bTmp.Key, 
       Count = bTmp.Sum(x => x.Count) 
      }).Take(10).ToList(); 

否則,你只能看你的context.BThread的前10個元素,這似乎有相同的Id,從而進入了同一組。

及(如SLAI在評論中已經說過了)刪除第二個Id = bTmp.First().Id,

+0

謝謝。現在我得到了解決方案.. – SeduceAdmin