查询各科成绩前三名的记录
分析如下:
1 select s.* from (select distinct Student.*,a.c_id, a.s_score, count( distinct b.s_score)+1 as rank
2 from Score a
3 left join Score b on a.c_id=b.c_id and a.s_score<b.s_score
4 left join Student on(a.s_id=Student.s_id)
5 group by a.c_id, a.s_id
6 order by a.c_id, a.s_score desc) s
7 where s.rank between 1 and 3;