当前位置: 代码迷 >> SQL >> 关于用sql求出契合条件的前几条记录(Top X)的两种方法
  详细解决方案

关于用sql求出契合条件的前几条记录(Top X)的两种方法

热度:27   发布时间:2016-05-05 14:51:50.0
关于用sql求出符合条件的前几条记录(Top X)的两种方法
如题:现有学生成绩表:    create table t_score(         id                number primary key,         student_name      varchar2(50),         student_gender    char(2),         score             number    );求出男生女生中成绩前五名的记录。方法一(常规sql):     select *       from t_score a      where 5 > (select count(1)                   FROM t_score                  where student_gender = a.student_gender                    AND score > a.score) order by a.student_gender asc, a.score desc;方法二(使用oracle分析函数):     select *      from (select rank() over(partition by a.student_gender order by a.score desc) rk, a.* from t_score a) t     where t.rk <= 5;

  相关解决方案