如果班级姓名和id号都不唯一,则用group by进行分组,再用with as语句,用个人的数据信息除以总的数据信息,再加起来进行排序
with aa as (
select SUM(fs) a,COUNT(*) b, SUM(tksum ) c from tkscore )
,bb as (
select xm,SUM(fs) aa,COUNT(*) bb, SUM(tksum ) cc from tkscore group by xm )
,cc as (select * from aa,bb)
,dd as (select xm, aa/a ax,1.0*bb/b bx,1.0*cc/c cx from cc )
select xm,ax+bx+cx 综合指标 from dd order by ax+bx+cx desc