在一列中按两种不同的类型分组并得到它们的总和

时间:2014-01-25 06:29:26

标签: c# sql linq sql-server-2008-r2

这里有一个像这样的列表:

GroupList = value.GroupBy(p => new { p.DraftStateId, p.DraftTypeId, p.SrcTeamId, p.PartsId, p.PartsType }).ToList();

DraftStateId列有4种不同的类型。

     DraftStateId        Count
         type1             5
         type2             8
         type3             6
         type4             7

现在我如何将type1type2的数量相加并将其显示为type1

1 个答案:

答案 0 :(得分:0)

假设您指的是数据库查询,首先需要执行查询,然后在内存中执行自定义分组。

var grouping = value
      .GroupBy(p => new { p.DraftStateId, p.DraftTypeId, p.SrcTeamId, p.PartsId, p.PartsType })
      .ToList()
      .GroupBy(p => p.DraftStateId)
      .GroupBy(p => {
        if (p.Key == "type1" || p.Key == "type2")
            return "type1";
        return p.Key;
      })
      .Select(p => new { DraftStateId = p.Key, Count = p.Sum(x => x.Count()) });