1. select a.cid, a.sid, a.score, count(b.score)+1 as rank
    2. from sc as a
    3. left join sc as b
    4. on a.score<b.score and a.cid = b.cid
    5. group by a.cid, a.sid,a.score
    6. order by a.cid, rank ASC;
    set @crank=0;
    select q.sid, total, @crank := @crank +1 as rank from(
    select sc.sid, sum(sc.score) as total from sc
    group by sc.sid
    order by total desc)q;