【发布时间】:2020-11-01 22:27:04
【问题描述】:
我的示例中有一个像这样的数据表(真实的比下面的列多几列):
Id Amount
1 2
12 4
12 6
22 7
22 7
我需要按 Sum(Amount) > 5 的 ID 进行分组,如下所示:
Id Amount
12 10
22 14
我首先使用 GroupBy,然后将组投影到 DataRows,然后使用 CopyToDataTable 扩展创建 DataTable。而且效果很好。
我是这个 Linq 方法和查询语法的新手,您能否告诉我,除了下面的现有查询之外,我可以在哪里添加子句 HAVING SUM(Amount) > 5?
以下是我的查询:
var newDt = dt.AsEnumerable()
.GroupBy(r => r.Field<int>("Id"))
.Select(g =>
{
var row = dt.NewRow();
row["Id"] = g.Key;
row["Amount"] = g.Sum(r => r.Field<int>("Amount"));
return row;
}).CopyToDataTable();
【问题讨论】:
标签: linq