SQLSugar 分组查询:计算分组内最大值和平均值
在使用 SQLSugar 进行分组查询时,可以使用 SelectGroupBy 方法指定需要分组的字段。例如,假设有一个 Student 表,包含字段 Id、Name 和 Age,我们需要按照 Age 字段进行分组,同时还需要查询每个分组中的最大年龄和平均年龄,可以使用以下代码:
var result = db.Queryable<Student>()
.GroupBy(it => it.Age)
.Select(it => new { Age = it.Age, MaxAge = SqlFunc.AggregateMax(it.Age), AvgAge = SqlFunc.AggregateAvg(it.Age) })
.ToList();
foreach(var item in result)
{
Console.WriteLine('Age: ' + item.Age + ', MaxAge: ' + item.MaxAge + ', AvgAge: ' + item.AvgAge);
}
在上面的代码中,使用 GroupBy 方法指定了按照 Age 字段进行分组。在 Select 方法中,通过 SqlFunc.AggregateMax 和 SqlFunc.AggregateAvg 方法来计算每个分组中的最大年龄和平均年龄。最后,通过 ToList 方法将查询结果转换为 List,并遍历输出每个分组的字段值。
原文地址: https://www.cveoy.top/t/topic/jjW6 著作权归作者所有。请勿转载和采集!