按LINQ中的百分比分组
本文关键字:百分比 LINQ | 更新日期: 2023-09-27 18:20:55
我尝试在LINQ中创建以下SQL查询,以便在我的ASP MVC项目中使用:
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相同的结果吗?
可能是这样的:-
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();
你可以试试这个:
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()
为该表