论坛首页 招聘求职论坛

某企业SQL面试题求解

浏览 28558 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-07-10   最后修改:2011-07-10
http://blog.csdn.net/shilang999/article/details/6398104

分析函数就是专门做这样的题目的。已经讲的很详细了。
0 请登录后投票
   发表时间:2011-07-10  
看看。。。
0 请登录后投票
   发表时间:2011-07-10  
先问清楚是什么数据库再说
0 请登录后投票
   发表时间: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
1 请登录后投票
   发表时间:2011-07-11  
varchar2--》Oracle啊。。
0 请登录后投票
   发表时间:2011-07-11  
oracle 没有top函数 要用其它方法 是什么库写什么sql撒。。
0 请登录后投票
   发表时间:2011-07-11  
http://vb2005xu.iteye.com/blog/690654
0 请登录后投票
   发表时间:2011-07-11   最后修改:2011-07-11
老问题了,排名问题,oracle可以用rownum 和rowid 搞定!多看看书吧!分组排序可以用partion!
0 请登录后投票
   发表时间: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))这个吧

0 请登录后投票
   发表时间:2011-07-11  
补充下,前面是针对第五名刚好重复的。。
重新想了下 如果不加 zhouYunan2010  的方法好像对这种特殊的不支持哦,加了好像更加不行罗
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics