mysql 依据一个字段分组 并显示每个分组的前N个值(从大到小排)

mysql 根据一个字段分组 并显示每个分组的前N个值(从大到小排)
表大概这个样子
gid level
1 9
1 8
1 9
1 5
1 6
3 5
4 4
5 3
3 5
4 3
5 4
3 8
5 9
6 2
假设N是2 那就需求显示成大致这样
gid level
1 9
1 9
3 8
3 5
4 4
4 3
5 9
5 4
6 2

gid的不连续的 level 是很多重复的。

看人家在sql server里面用row number做的。

刚接触数据库没一个月呢。小白求教

------解决方案--------------------
就是每组去最大的前两个吧


select *
from tb A
where 2>=(select count(*) from tb where A.gid=gid and A.level<=level)
------解决方案--------------------
参考下贴中的多种方法

http://blog.csdn.net/acmain_chm/article/details/4126306
[征集]分组取最大N条记录方法征集,及散分....