27,582
社区成员




select 平均分=avg(a.score),排名=(select count(1) from results where a.class=class
and score>=a.score)
from results a
where class='高二一班' and tid=2
select t1.* , px = (select count(1) from
(
select avg(m.分数) avg_score , m.TID , n.Grade , n.Name from 成绩表 m , 班级表 n where m.Class = n.CID group by m.TID , n.Grade , n.Name
) t2 where TID = t1.TID and Grade = t1.Grade and Name = t1.Name and avg_score > t1.avg_score) + 1 from
(
select avg(m.分数) avg_score , m.TID , n.Grade , n.Name from 成绩表 m , 班级表 n where m.Class = n.CID group by m.TID , n.Grade , n.Name
) t1
with
wang as (
select 年级名称 ,班级名称 ,均分=avg(分数)
from 成绩表 s join 班级表 t on s.班级编号=t.班级编号
group by 年级名称 ,班级名称
)
select 排名=row_number over( partition by 年级名称 order by 均分 desc ),*
from wang