用c#算成绩的总和_.NET[C#]LINQ按多列分组(Group By)并计算总和(Sum)

.NET[C#]LINQ按多列分组(Group By)并计算总和(Sum),比如我们现在有类似的SQL语句:

SELECT * FROM GROUP BY ,QuantityBreakdown

(

MaterialID int,

ProductID int,

Quantity float

)

INSERT INTO @QuantityBreakdown (MaterialID, ProductID, Quantity)

SELECT MaterialID, ProductID, SUM(Quantity)

FROM @Transactions

GROUP BY MaterialID, ProductID

在C#中,如何使用LINQ实现以上SQL语句中的需求呢?方式归纳如下:

方式一var query = (from t in Transactions

group t by new {t.MaterialID, t.ProductID}

into grp

select new

{

grp.Key.MaterialID,

grp.Key.ProductID,

Quantity = grp.Sum(t => t.Quantity)

}).ToList();

方式二from grouping in list.GroupBy(x => new Tuple(x.Person.LastName,x.Person.FirstName,x.Person.MiddleName))

select new SummaryItem

{

LastName = grouping.Key.Item1,

FirstName = grouping.Key.Item2,

MiddleName = grouping.Key.Item3,

DayCount = grouping.Count(),

AmountBilled = grouping.Sum(x => x.Rate),

}

方式三var Results= query.GroupBy(x => new { x.Column1, x.Column2 });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值