S(sno,sname)
C(cno,cname)
SC(sno,cno,grade)这是三张表,大家应该都知道吧写出每门课程成绩大于90分的人数的select语句,我看到答案了,但是思路还是比较混乱,请大牛们帮我理一理思路地给出答案比如,第一步,想到什么
第二部,想到什么
然后。
尽量把思路写出来,非常地感谢啦!!!!
C(cno,cname)
SC(sno,cno,grade)这是三张表,大家应该都知道吧写出每门课程成绩大于90分的人数的select语句,我看到答案了,但是思路还是比较混乱,请大牛们帮我理一理思路地给出答案比如,第一步,想到什么
第二部,想到什么
然后。
尽量把思路写出来,非常地感谢啦!!!!
解决方案 »
- oracle sql查询每年一月份产品销量
- 求教:关于将一个表中的某些数据项导出到另外一张表中去的方法(感谢高手达人能够迅速指点 谢谢啊)
- oracle 7.3 连接时 提示ora-00604 ora-00376 ora-01110(问题紧急,高手请联系,酬谢!)
- 除了用TRIGGER监控DML,还有没有其它方法监控表的改动??牛人大哥些,救救小弟,感激不尽~~~~
- 请问一个sql语句:如何实现“连续”这个概念?
- 问个基本问题
- 修改用户下的表的表空间问题!
- 请问在SQL PLUS 中如何创建执行PROCEDURE?
- 怎么设SID?
- 关于查询语句排序的问题
- oracle一次插入多条数据报错,求解???
- sql 语句怎么写?合并花圈的两条
from c join sc on c.cno=sc.cno
group by c.cname;
解析:
每门课程:就是按照课程分类,group by cno。
成绩大于90分,where子句后面grade > 90。
人数:很明显这个是统计人数的多少,用count()函数。select cno, count(1) from sc where grade > 90 group by cno;
select count(distinct sno) cnt
from sc t
where not exists (select 1
from sc t1
where t1.grade < 90
and t.sno = t1.sno);
where Sno not in( select Sno from SC where SC.grade<90 and SC.Sno =S.Sno)