2015-11-06 85 views
1

個我嘗試創建LINQ下面的SQL查詢我的ASP MVC項目使用:集團在LINQ

SELECT State, (Count(a.State)* 100/(Select Count(*) From myTable)) 
FROM myTable a 
GROUP BY a.State 

我到目前爲止有:

var data = db.myTable.GroupBy(fu => fu.State) 
     .Select(g => new { Label = g.Key, Value = g.Key * 100/g.Count() }) 
     .ToList(); 

的計算是不正確。必須讓LINQ產生與SQL相同的結果嗎?

回答

4

這大概: -

Value = g.Count() * 100/db.myTable.Count() 

這似乎是等價的SQL查詢。

所以,你的完整的查詢應該是這樣的: -

var data = db.myTable.GroupBy(fu => fu.State) 
     .Select(g => new { Label = g.Key, Value = g.Count() * 100/db.myTable.Count() }) 
     .ToList(); 
1

你可以試試這個:

var data = db.myTable.GroupBy(fu => fu.State) 
     .Select(g => new { Label = g.Key, Value = g.Count() * 100/db.myTable.Count() }) 
     .ToList(); 

g.Count()是要給你Count(a.State)價值和db.myTable.Count()該表

總行的