我有一个记录页面访问的应用程序,我需要能够按周和按月查询,表查询的示例输出如下(每行代表一次访问:
访问结果集
DateTimeLanding | PageViews
2016-05-12 | 2
2016-05-16 | 3
2016-05-16 | 8
2016-05-16 | 3
2016-05-17 | 7
2016-05-19 | 4
2016-05-28 | 6
2016-05-28 | 3
2016-05-30 | 1
如果我想查询此结果集以进行每日访问,请执行以下操作:
var visitData = visits.GroupBy(v => v.DateLanding)
.OrderBy(g => g.Key)
.Select(g => new { From = g.Key, Count = g.Count() });
visitNodes.Num = visits.Count().ToString();
visitNodes.Nodes = visitData.Select(p => new ReferralTrafficNode()
{
MetricDateTimeFrom = p.From,
MetricDateTimeTo = p.From.AddDays(1),
Value = p.Count
}).ToList();
这适用于每日访问,因为我可以将日期分组。
如何将结果集分组为7天的小组以获取每周访问数据? 基本上我需要能够按日期范围进行分组
答案 0 :(得分:0)
如果您将小组更改为:
v => v.DateLanding.AddDays(-(int)v.DateLanding.DayOfWeek)
这应该按所选周的星期日进行分组。