这是示例表:
类型 | 项目 | 活动 | 完成 |
---|---|---|---|
A | 项目#1 | 行动#1 | 正确 |
A | 项目#1 | 行动#2 | 正确 |
A | 项目#1 | 行动#3 | 错误 |
A | 项目#2 | 行动#1 | 正确 |
A | 项目#2 | 行动#2 | 正确 |
B | 项目#3 | 行动#1 | 错误 |
B | 项目#3 | 行动#2 | 正确 |
B | 项目#3 | 行动#3 | 错误 |
输出聚合应该是:
类型 | 物品计数 | 项目完成 | 剩余物品 | 活动计数 | 活动完成 | 活动保持 |
---|---|---|---|---|---|---|
A | 2 | 1 | 1 | 5 | 4 | 1 |
B | 1 | 0 | 1 | 3 | 1 | 2 |
这是我的试用版:
var _result = _itemModel.GroupBy(x => new { x.Type})
.Select(y => new
{
ItemsCount = y.Select(x => x.Item).Distinct().Count(),
ItemsDone= ????,
ItemsRemaining=????,
ActivityCount= y.Count(x => x.Type != null),
ActivityDone = y.Count(x => x.Completed == true),
ActivityReamin = y.Count(x => x.Completed == false)
}).ToList();
我尝试按项目作为类型组内的子组进行计数。 请更正并完成我的代码。感谢您的支持
尝试:
ItemsDone = y.GroupBy(x => x.Item).Where(g => g.All(i => i.Done)).Count()