1

我有以下 LINQ 查询:

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

这很好用,因为它会在 2 个指定的时间段之间返回一个值,比如 60,但我想做的是找到这段时间内每天、每周和每月的平均查询数,是否有可能林克?

4

2 回答 2

7

好吧,鉴于您自己指定了时间段,这很容易:

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

编辑:我看到您正在更改球门柱...如果您想在一个查询中获得不同日期范围的平均值,那么这将很棘手。就个人而言,除非有大量数据,否则我可能会获取适当范围内的所有查询日期,然后在本地处理它,这可能比尝试最小化 SQL 查询的数量同时仍然保持智能更容易.

在任意时期按月平均在概念上很棘手:(比如说)2 月 16 日到 4 月 7 日期间有多少个月?涉及三个不同的月份长度。

当然,您的意思可能是“按天平均,按月分组”(例如,1 月按天平均,2 月按天平均”等),这完全不同。这就是为什么您需要精确地了解需求。

于 2012-05-09T12:24:56.787 回答
0

您需要使用 GROUP BY 按天对条目进行分组,在此处记录(带有示例)

否则,您将需要通过 SUM/COUNT 进行平均,这使您对分布、趋势等的了解较少。

于 2012-05-09T12:26:59.133 回答