考试前2分数和题解

考试前2分数的学生

http://www.nowcoder.com/questionTerminal/b83f8b0e7e934d95a56c24f047260d91

select id,name,score from
(select g1.id id,l.name name,g1.score score,
(select count(distinct g2.score) from grade g2 where g1.score<=g2.score and g1.language_id=g2.language_id)as rank
from grade g1,language l
where g1.language_id=l.id) as g
where rank<=2
/group by name 别多此一举/
order by name asc,score desc

根据前面的求最值,前几名,奇偶数的问题总结出一个通式(目的就是增加额外的"排名"列):
select t1.id,t1.type,t1.score,
(select count(distinct t2.score) from t t2 where t1.score<=t2.score and t1.type=t2.type) as rank
from t t1;

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务