C#Linq汇总结果和计算平均值

时间:2017-06-23 12:32:02

标签: c# sql .net linq sqlite

我创建了一个sqlite数据库。现在我需要一张桌子,我可以存储我的客户购买的数量和他们支付的平均价格。 代码在C#中,表格具有以下结构:

客户端ID;项目ID;数量;价钱;日期;

我存储我的客户ID以及他们在给定日期购买给定数量的商品时支付的价格。

相同的客户可以在多天内购买相同的商品并支付不同的价格。 我需要的是汇总每个客户为给定项目购买的所有数量以及他支付的平均价格。 我认为这可以在Linq中完成,以使其高效,但我不知道如何设置查询以满足上述需求。任何帮助深表感谢。

2 个答案:

答案 0 :(得分:2)

你尝试过什么?怎么样:

var result = data.GroupBy(x => new {x.ClientID, x.ItemID})
            .Select(
                g =>
                    new
                    {
                        g.Key.ClientID,
                        g.Key.ItemID,
                        AvgPrice = g.Average(c => c.Price), 
                        SumQuantity = g.Sum(c => c.Quantity)
                    });

答案 1 :(得分:1)

purchases.GroupBy(g => new { g.ClientId, g.ItemId })
         .Select(g => new
                      {
                           ClientId = g.Key.ClientId,
                           ItemId = g.Key.ItemId,
                           Price = g.Sum(p => p.Price * p.Quantity) / g.Sum(p => p.Quantity)
                        });
相关问题