你能一条SQL得出这个结果吗
表结构如下 
          学生ID(s_id) 
          科目(s_kc) 
          成绩(s_grade) 
 用一条SQL语句查出每科目成绩前两名的学生
------解决方案--------------------select * from  
 (select row_number() over( partition by t.s_kc order by t.s_grade desc) no, t.* from table t ) 
 where no  <=2     
------解决方案--------------------SELECT *FROM ( 
 select 科目,成绩,学号, 
 dense_rank() over (partition by 科目 order BY 成绩 asc nulls last) 排名 
 FROM TABLE) WHERE 排名 <=2;   
 该语句包括了成绩一样,也就是并列名次的 
------解决方案--------------------刚才写错了,得排倒序 
 SELECT *FROM ( 
 select 科目,成绩,学号, 
 dense_rank() over (partition by 科目 order BY 成绩 desc nulls last) 排名 
 FROM TABLE) WHERE 排名 <=2;   
 该语句包括了成绩一样,也就是并列名次的 
------解决方案--------------------来个不一样的吧   
 select * 
 from 成绩表 a 
 where 学生ID in 
 ( 
    select 学生ID 
    from  
    ( 
      select * from 成绩表 order by 成绩 desc   
    ) 
    where a.科目=科目 
    and rownum <=2 
 )