我有一个数据表(参见图片)
我试图将'1相加。每个客户ID的“事件”列中的“费率”。
我正在使用下面的代码来这样做:
Property 'map' does not exist on type 'number'.
您可能会在图像中注意到,许多“ UnitID”是相同的。例如,我正在尝试应用过滤器。如果任何相同的“ UnitID”具有“事件”为“ Refundering”,我想过滤所有那些“ UnitID's”,而不仅是单行。欢迎提出任何有关如何应用此过滤器的想法。
预先感谢
答案 0 :(得分:0)
按UnitID
分组并删除包含“ Refundering”的组,然后取消仅保留“ 1. rate”行的分组,按ClientID
分组并计算结果。
var ans = dt.AsEnumerable()
.GroupBy(r => r.Field<string>("UnitID"))
.Where(rg => rg.All(r => r.Field<string>("Event") != "Refundering"))
.SelectMany(rg => rg.Where(r => r.Field<string>("Event") == "1. rate"))
.GroupBy(r => r.Field<string>("ClientID"))
.Select(rg => new { ClientID = rg.Key, CountRate = rg.Count() });