可以在控制器中计算一个百分比列,该列以模型中的另一个数字作为其分母 - 所以类似:
之类的东西 var sites = db.Calls.Where(x =>x.status != "Resolved" && x.status != "Closed").GroupBy(calls => new { calls.site })
.Select(s => new SiteVM
{
Site = s.Key.site,
Number = s.Count(),
Perc = s.Count() / s.Sum(x => x.site.Count())
}).OrderByDescending(z => z.Number);
我知道这部分不对:s.sum(x => x.site.count())
因此,perc应该是划分的数字,例如:
Site Number Perc (number / sum of number)
London 100 50
Birmingham 30 15
Glasgow 70 35
谢谢,
标记
您可以做到这一点:
var calls = db.Calls.Where(x =>x.status != "Resolved" && x.status != "Closed").ToList();
var callsCount = calls.Count();
var sites = calls.GroupBy(calls => new { calls.site })
.Select(s => new SiteVM
{
Site = s.Key.site,
Number = s.Count(),
Perc = callsCount / s.Count() * 100
}).OrderByDescending(z => z.Number);