簡體   English   中英

c#/ LINQ-一段時間內每天,每周和每月的平均查詢數量

[英]c# / LINQ - Average the number of enquiries per day, week and month over a time period

我有以下LINQ查詢:

model.TotalEnquiries = enquiriesDbContext.Enquiries.Where(x => x.CustomerAccountNumber == formModel.CustomerAccNo)
                   .Where(x => x.EnquiryDate >= startDate).Where(x => x.EnquiryDate <= endDate).Count();

這可以正常工作,因為它將在兩個指定的時間段之間返回值60,但是我想做的是找到該時間段內每天,每周和每月的平均查詢次數,是否可以LINQ?

好了,既然您自己指定了期限,這很簡單:

var averagePerDay = total / (endDate - startDate).TotalDays;

編輯:我看到你正在改變球門柱...如果你想在一個查詢中獲得不同日期范圍的平均值,那將非常棘手。 就個人而言,除非有大量數據,否則我可能會獲取適當范圍內的所有查詢日期,然后在本地進行處理,這可能比嘗試盡量減少SQL查詢的數量同時保持其智能還容易。 。

從概念上講,在任意時期內按月進行平均是很棘手的:(例如)2月16日至4月7日有多少個月? 涉及三個不同的月份長度。

當然,您可能會說“每天平均,按月分組”(例如,1月的平均天數,2月的平均天數”等),這是完全不同的,這就是為什么您需要精確了解需求的原因。

您需要使用GROUP BY按日期對條目進行分組, 此處記錄 (帶有示例)

否則,您需要通過SUM / COUNT進行平均值計算,這會使您對分布,趨勢等情況的了解減少。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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