日期:2014-05-17  浏览次数:20577 次

一个简单的SQL语句求大神。
表Users
id  classid  name age
1     1      a     11
2     1      b     12
3     2      c     13
4     3      d     11
5     3      e     12
6     1      d     14
7     1      h     15
8     2      i     16
9     2      g     12
10    3      v     11
11    1      d     15
12    2      f     13
我想要得到的是 按班级classid 取 前三个的id,name然后按年龄排序
结果
id  classid  name age
1     1      a     11
2     1      b     12
6     1      d     14
3     2      c     13
12    2      f     13
8     2      i     16
4     3      d     11
10    3      v     11
5     3      e     12

------解决方案--------------------
select id ,classid ,name ,age from
(select no=row_number() over(partition by classid order by id),* from tb)t