如何解决如何获得LINQ中的百分比?
我的问题是:如何将其翻译为LINQ?
select Reasons.Description,count(*) * 100.0 / sum(count(*)) over() AS Porcentage
from Rejected
iNNER JOIN Reasons
ON Rejected.Reason = Reasons.ReasonID
group by Reasons.Description
或者,如果要使用存储过程,如何用此结果填充Ilist。
我要执行的操作只是获取数字中每个“说明类型”的百分比,这样以后我就可以填写甜甜圈图了。
谢谢
解决方法
我建议从您的数据存储中获取原始计数,然后计算应用层中的百分比,或者让您的图表组件根据该原始值确定百分比。这样的事情应该起作用:
var query = (from reason in dc.Reasons
join reject in dc.Rejections on reason.ReasonID equals reject.Reason
group reason by reason.Description into grouped
select new { Reason = grouped.Key,ItemCount = grouped.Count() })
.ToList();
// If you really need to generate the averages and not let your charting component figure the percentages out for you:
var totalItems = query.Sum(q => q.ItemCount);
var averages = query.Select(q => new { q.Reason,Average = q.ItemCount / totalItems * 100});
如果您更喜欢lambda而不是查询语法,请查看GroupJoin。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。