我有一个表需要填充记录,如下所示。每条记录都有一个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进行分组方面不太强大。
答案 0 :(得分:11)
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背景,SQL queries in LINQ可以帮助您更熟悉LINQ。