在使用 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,并遍历输出每个分组的字段值。

SQLSugar 分组查询:计算分组内最大值和平均值

原文地址: https://www.cveoy.top/t/topic/jjW6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录