[英]EF6 - Return calculated grouped results within a single query
我有一個使用情況表,用於存儲各種產品客戶的日常使用情況。 我現在想返回一個結果,該結果按客戶ID將結果分組,以表示各種產品的總使用量/總使用量。
參見下面完美說明當前數據結構的示例:)
我希望返回這樣的結果集(再次,佩服我的插圖能力):
使用EF可以進行這種計算嗎? 我正在嘗試避免許多循環來實現相同的目的,因此這將極大地幫助一個兄弟。
您需要的是GroupBy
和Sum
:
var result = context.Customers
// .Where(filter) // filter if needed
.GroupBy(m => m.CustomerID)
.Select(g => new
{
CustomerID = g.Key, // We grouped according to CustomerID, so key = CustomerID
SumProd1 = g.Sum(m => m.Prod1), // Sum Prod1 of grouped data
SumProd2 = g.Sum(m => m.Prod2) // Sum Prod2 of grouped data
})
.ToList();
注意: ToList()
用於檢索數據,如果您打算處理查詢,則不需要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.