我有一个反馈分数表,它基本上包含一个日期字段和一个“分数”字段(可能是“快乐”、“中立”或“悲伤”)。
我想返回一个查询,它按月为我提供每个分数的计数,如下所示:
但是,我的查询没有正确分组——我基本上每个月都会得到三行(一行表示“快乐”,一行表示“中性”,一行表示“悲伤”,如下所示:
如何将数据聚合在一起?
我现在的查询是这样的:
var monthlyScore = from f in db.tl_feedbacks
group f by new { month = f.timestamp.Month, year = f.timestamp.Year, score = f.tl_feedback_score.score } into g
select new
{
dt = string.Format("{0}/{1}", g.Key.month, g.Key.year),
happyCount = g.Where(x => x.tl_feedback_score.score == "happy").Count(),
neutralCount = g.Where(x => x.tl_feedback_score.score == "neutral").Count(),
sadCount = g.Where(x => x.tl_feedback_score.score == "sad").Count(),
total = g.Count()
};