gpt4 book ai didi

c# - 从 EF 获取平均值

转载 作者:行者123 更新时间:2023-12-02 17:24:27 26 4
gpt4 key购买 nike

我有两个表StudentCourse

Course 表使用 StudentId 作为 FK 键。在 Course 表中,有学生参加的每门类(class)的 Score

现在,如何计算与 StudentId 相关的总平均 Score

这是我得到的结果(Id = Students id):

var avg = db.Courses.Where(c=> c.StudentId == Id ... ?

编辑:Course 表在Score 中有一些null 表示未完成的类(class)。

最佳答案

来源:Return the Average Value From a Numeric Sequence

鉴于分数可以为空,那么您应该只获取具有有效分数的记录

var avg = db.Courses
.Where(c => c.StudentId == Id && c.Score != null)
.Average(c => c.Score);

如果您要寻找每个学生的平均分数,那么您可以同时使用 GroupByAverage

var avgerages = db.Courses
.Where(c => c.Score != null)
.GroupBy(g => g.StudentId, c => c.Score )
.Select(g => new
{
StudentId = g.Key,
Average = g.Average()
});

关于c# - 从 EF 获取平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39886043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com