我在SQL Server中有一个如下表
Id Year Month RecDate
1 2018 7 7/1/2018
2 2018 7 7/2/2018
3 2018 7 7/3/2018
4 2018 8 8/1/2018
5 2018 8 8/1/2018
6 2018 8 8/1/2018
7 2018 8 8/2/2018
8 2018 9 9/10/2018
9 2018 9 9/10/2018
10 2018 9 9/10/2018
我已经编写了以下EF代码来获取年度平均值,但我认为应该有一种更好的方法来将其平均化,如下所示:
我想要以下内容 年平均= 10
每月平均值= 3.3或3
每日平均值= 1.6
var data = _context.vIntakes.ToList();
var data1 = data.GroupBy(x => new
{
x.Year
})
.Select(g => new
{
Year = g.Key.Year,
Cases = g.Count(m => m.Id >= 1)
});
int? cases = 0;
int? years = 0;
float? avgcases = 0;
foreach(var item in data1)
{
years = years + 1;
cases = cases + item.cases;
}
avgcases = cases / years;