这样一个选择,能不能用sele语句实现
一个表有四个班级的学生成绩,
用sele实现:
第1-4条记录是每个班的第一名,
5-8是每个班的第二名
…… 

解决方案 »

  1.   

    easy
    假设表 a
    classid班级 s_id学号 score成绩select a.*,row_number() over(partition by classid order by score desc) rn
    from a
    order by row_number() over(partition by classid order by score desc)
      

  2.   

    使用下面语句,
    select b.....,
           ceil(b.rn/4) as 名次
    from (
    select a.*,row_number() over(partition by classid order by score desc) rn 
    from a 
    order by row_number() over(partition by classid order by score desc)) B不好意思,借用楼上的部分语句。