【问题标题】:Linq query with group by retrieving percentage通过检索百分比进行分组的 Linq 查询
【发布时间】:2011-01-04 03:23:31
【问题描述】:

我必须计算 group by 子句中的百分比。 更深入地,我需要计算具有 Status = 'False' 的 ControlForm 的百分比。状态在表 checkResult 中。

var items = (from controlForm in dataContext.ControlForms
             join controlFormStatus in dataContext.ControlFormStatus on controlForm.FK_ControlFormStatus equals controlFormStatus.Id
             join docCheck in dataContext.DocumentChecks on controlForm.Id equals docCheck.FK_ControlForm
             join checkResult in dataContext.CheckResults on docCheck.FK_CheckResult equals checkResult.Id
             where controlForm.FK_ControlCycle.ToString().Equals(controlCycleId) & (
             controlFormStatus.Description.Equals(Constants.ControlFormStatusTestControlOwner)
             | controlFormStatus.Description.Equals(Constants.ControlFormStatusApprovalProcessOwner))
             group controlForm by new { controlForm.Id, controlForm.FK_ControlCycle, controlForm.FK_SampleNode, controlForm.FK_Control, /*FUNCTION*/} into ctrlForm
                         select new ControlFormReportPartialResults(ctrlForm.Key.Id, ctrlForm.Key.FK_ControlCycle, ctrlForm.Key.FK_SampleNode, ctrlForm.Key.FK_Control, ValueFunction));

谁能建议我除了 /FUNCTION/ 之外我必须做什么?或者是否有其他方法可以解决问题? 非常欢迎任何帮助!

提前致谢, 达里奥·扎内利

【问题讨论】:

    标签: c# linq group-by


    【解决方案1】:

    将“collection”替换为包含您要计算百分比的项目的适当变量:

    collection.Select(item => item.Status == false).Count() / collection.Count() * 100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多