【问题标题】:SQL into LinQ Stement involving SUM() [duplicate]SQL进入涉及SUM()的LinQ语句[重复]
【发布时间】:2021-05-30 23:58:06
【问题描述】:

我无法将下面的 SQL 代码转换为 LinQ 方法语法

select top(5) MerchantUserId,sum(TotalAmount) as TotalAmount from OrderTransaction 
group by MerchantUserId 
order by TotalAmount desc

我已经尝试过,但我无法让 LinQ 适应函数 SUM

var list = _ApplicationDbContext.OrderTransaction
          .Where(x => x.Status != 0)
          .GroupBy(x => x.MerchantUserId)
          .Select(x => new DashboardMerchantStoreRankingByOrderAmount { MerchantUserId = x.Key })
          .OrderByDescending(x => x.TotalAmount)
          .Take(5)
          .ToList();

以下是用于存储单个记录的类

public class DashboardMerchantStoreRankingByOrderAmount
{
    public Guid MerchantUserId { get; set; }
    public double TotalAmount { get; set; }
    
}

基本上,我想根据订单金额检索前 5 名表现最佳的商家。

【问题讨论】:

    标签: c# sql entity-framework linq


    【解决方案1】:

    以下查询完全实现了 sql 查询。

    var query = _ApplicationDbContext.OrderTransaction.Where(x => x.Status != 0)
      .GroupBy(a => a.MerchantUserId)
      .Select(group =>
         new DashboardMerchantStoreRankingByOrderAmount
         {
             MerchantUserId = group.Key,
             TotalAmount = group.OrderByDescending(a => a.TotalAmount).Select(a => a.TotalAmount).Take(5).Sum()
         }).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-30
      • 2013-09-28
      • 2013-04-18
      • 1970-01-01
      • 2015-01-07
      • 2021-06-05
      • 2021-06-01
      • 1970-01-01
      相关资源
      最近更新 更多