mysql的row_number()实现
2016-12-01 09:51 牛仔裤的夏天 阅读(1812) 评论(0) 收藏 举报在mysql中没有row_number()方法,这里模拟row_number()实现:
如有表 student
id name age class
1 张1 15 1
2 张2 15 1
3 张3 15 1
4 张4 15 2
5 张5 15 2
6 张6 15 2
7 张7 15 3
8 张8 15 3
9 张9 15 3
10 张10 15 5
11 张11 15 5
…………
现在想得到每个班级的前2名学生资料
SQL:
SELECT a.* FROM student a WHERE (SELECT COUNT(*) FROM student WHERE class = a.class AND id < a.id ) < 2 ORDER BY a.class,a.id;
通过SELECT COUNT(*) FROM student WHERE class = a.class AND id < a.id 这一句来查询当前记录在class相同的情况下的排序位置,然后判断 < 2的则是前两名的记录。
鉴于写作能力有限,若有描述不当或明显错误的,欢迎指正!
浙公网安备 33010602011771号