[英]Group by multiple columns linq count nested row
我有一个表需要填充记录,如下所示。 每条记录都有一个div,bus和dept,以及一个状态代码,即Entered,Progress和Finished。
Div Bus Dept Entered Progress Finished
Com XYZ Credit 1 1 1
Con DBD Fraud 2 5 3
Con AAA Call C 5 55 2
Com BBB Auth 1 4 3
Com AAA AES 8 1 1
Con XYZ Collection 1 1 1
Con 12 3 5
Com 5 1 7
有一个名为status的列,可以是Entered,Progress或Finished。 我需要一种按Div,Bus,Dept分组的方法,并计算每条记录的状态,然后总结每个部门的代码,如上所示。 我尝试了以下linq查询
var records = records.GroupBy(x=>new {x.Div, x.Bus,x.Dept,x.Status.Count()};
我不确定在哪里接受查询,我在使用linq进行分组方面不太强大。
records
.GroupBy(x => new { x.Div, x.Bus, x.Dept })
.Select(g => new
{
g.Key.Div,
g.Key.Bus,
g.Key.Dept,
Entered = g.Count(r => r.Status == Entered),
Progress= g.Count(r => r.Status == Progress),
Finished= g.Count(r => r.Status == Finished),
});
如果您来自SQL背景,LINQ中的SQL查询可以帮助您更熟悉LINQ。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.