![](/img/trans.png)
[英]How dynamically group by and compute aggregate sums/maximums data with LINQ in c#
[英]C# Linq to aggregate results and compute averages
我已經創建了一個sqlite數據庫。 現在,我需要一個表格,可以在其中存儲客戶購買的數量和他們支付的平均價格。 代碼在C#中,表具有以下結構:
客戶編號; ItemID; 數量; 價錢; 日期;
我在其中存儲我的客戶ID和他們在給定日期購買了一定數量的商品時所支付的價格。
碰巧同一位客戶可以在多天內購買同一商品,並支付不同的價格。 我需要的是匯總每個客戶為給定項目購買的所有數量以及他支付的平均價格是多少。 我認為可以在Linq中做到這一點以使其高效,但是我不確定如何針對上述需要設置查詢。 任何幫助深表感謝。
你有嘗試過嗎? 怎么樣:
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)
});
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)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.