[英]Linq query summary by column with ordering
The scenario is like this 场景是这样的
public class Test {
public string name;
public int val1;
public int val1;
}
name |val 1 |val 2|
'aa' | 10 | 4 |
'aa' | 30 | 5 |
'bb' | 14 | 4 |
'bb' | 16 | 6 |
'cc' | 5 | 5 |
'cc' | 2 | 1 |
'cc' | 1 | 1 |
What is the best way group by name and get summary val_1 ans val_2 for every name 什么是按名称分组的最佳方式,并为每个名称获取汇总val_1和val_2
as 如
name |val 1 |val 2|
'aa' | 40 | 9 |
'bb' | 30 | 10 |
'cc' | 8 | 7 |
Try this 试试这个
var results =
from t in db.Tests
group t by t.name into g
orderby g.Key
select new
{
name = g.Key,
val_1 = g.Sum(x => x.val_1),
val_2 = g.Sum(x => x.val_2)
};
Or if you prefer fluent syntax: 或者如果您更喜欢流利的语法:
var results = db.Tests.GroupBy(t => t.name)
.OrderBy(g => g.Key)
.Select(g => new
{
name = g.Key,
val_1 = g.Sum(x => x.val_1),
val_2 = g.Sum(x => x.val_2)
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.