oracle查找最高成绩的sql。。求救

来源:百度知道 编辑:UC知道 时间:2024/05/31 13:50:52
请高手帮我看看以下问题,有答案的看一下答案对不?没有的请补上。。谢谢。。交流学习!!

有关系 s(sno,sname) c(cno,cname) sc(sno,cno,grade)
1 问上课程 "db"的学生no
select a.sno from s a,c b,sc c where a.sno=c.sno,c.cno=b.cno and b.cname = 'db';
2 成绩最高的学生号
select sno from sc where grade = (select max(grade) from sc);
3 每科大于90分的人数

4 成绩最高的十个人编号和姓名
第三题:要求该学生的每课分数都大于90(有好几门课)

3
select count(1),cno
from sc
where grade >= 90
group by cno
4
select cno,(select cname from c where cno = tt.cno) as cname
from
(select cno from sc order by grade where rownum <= 10) tt
当然这个SQL需要你保证c表的cno是PK

--------
对补充的条件可以知道只要这个学生的最小分数在90分以上就行了
select count(1),cno
from sc
where grade >= 90
and cno in
(select cno from sc having min(grade) >= 90 group by cno)
group by cno
那个having条件我也不知道那么写对不对……不行的话外面再套一层select吧orz