[英]get top 5 frequent values and their total count Linq-to-Sql
我正在使用這個 Linq to sql 來獲取最多出現的記錄。
List<int> result;
result = await context.InvoiceItems.GroupBy(q => q.ProductID)
.OrderByDescending(gp => gp.Count())
.Take(5)
.Select(g => g.Key).ToListAsync();
並獲取 int 類型值。 但我還想獲得每個值出現的總次數。 就像這個 SQL 查詢正在返回。
select productID, Count(*) AS value_occurrence from InvoiceItems group by productID
看到這張桌子圖片
您需要按ProductID
分組,然后將結果投影到Sample
類中,一個屬性為.Key
,第二個屬性為.Count()
。
List<Sample> result = await context.InvoiceItems.GroupBy(q => q.ProductID)
.OrderByDescending(gp => gp.Count())
.Take(5)
.Select(g => new Sample { ProductID = g.Key, Value_Occurence = g.Count() }).ToListAsync();
result.ForEach(x => Console.WriteLine($"ID: {x.ProductID}, \t Value_Occurence: {x.Value_Occurence}"));
您可以將結果投影到以下示例類中。
class Sample
{
public int ProductID { get; set; }
public int Value_Occurence { get; set; }
}
輸出:輸入,每個 productID 只有一個InvoiceItem
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.