簡體   English   中英

獲取前 5 個頻繁值及其總數 Linq-to-Sql

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM