阅读 28563 次
发表时间:2011-07-10
http://blog.csdn.net/shilang999/article/details/6398104

分析函数就是专门做这样的题目的。已经讲的很详细了。
发表时间:2011-07-10
看看。。。
发表时间:2011-07-10
先问清楚是什么数据库再说
发表时间:2011-07-10

我晕看到了varchar2还问事什么数据库?
搞了很久,这个应该比较通用

 select * from(
        select * from score a
        where (select count(1) from score where course_id=a.course_id and score>=a.score)<=5 
        order by course_id,score desc) sc,student s,course c
 where sc.course_id=c.course_id and sc.student_id = s.student_id;

 数据是前面仁兄的数据。


  • 大小: 34.5 KB
发表时间:2011-07-11
varchar2--》Oracle啊。。
发表时间:2011-07-11
oracle 没有top函数 要用其它方法 是什么库写什么sql撒。。
发表时间:2011-07-11
http://vb2005xu.iteye.com/blog/690654
发表时间:2011-07-11
老问题了,排名问题,oracle可以用rownum 和rowid 搞定!多看看书吧!分组排序可以用partion!
发表时间:2011-07-11
zhouYunan2010 写道

我晕看到了varchar2还问事什么数据库?
搞了很久,这个应该比较通用

 select * from(
        select * from score a
        where (select count(1) from score where course_id=a.course_id and score>=a.score)<=5 
        order by course_id,score desc) sc,student s,course c
 where sc.course_id=c.course_id and sc.student_id = s.student_id;

 

 


试过了可以哦,但要是分数重复呢,应该要加上计算不重复的分数:count(1)->count(distinct(score))这个吧

发表时间:2011-07-11
补充下,前面是针对第五名刚好重复的。。
重新想了下 如果不加 zhouYunan2010  的方法好像对这种特殊的不支持哦,加了好像更加不行罗
Global site tag (gtag.js) - Google Analytics