纯粹C#代码实现如下:
List<Student> list= new List<Student>();
list.Add(new Student("name","subject1",88));
....
list.Add(new Student("name","subject3",55));
var l=from i in list group i by i.name into g orderby g.Average(p=>p.score) descending select new {g.Key, AvgScore=g.Average(p=>p.score)};
foreach(var item in l)
Console.WriteLine("{0}的平均分为{1}",item.Key,item.AvgScore);
纯粹数据库方式实现如下
create table student
(
id int identity(1,1) primary key,
classid int not null,
name nvarchar(6) not null,
subject nvarchar(10) not null,
score float
)
go
create view vw_SelectAvg
as
select classid,name,avg(score) as avgScore from student group by classid,name
go
select * from vw_SelectAvg where classid=1
插入测试数据试试看
温馨提示:答案为网友推荐,仅供参考