这是我的表格
Student (sname, sid, gpa, level, deptno)
Course (cno, cname, deptno, units)
Dept (dname, deptno)
Takes (sid, cno)
编写一个SQL查询,返回选修了更多专业课程外课程的学生姓名(即snames),可以假设数据库中所有学生至少选修了一个专业内课程。
我并不是在寻找这个问题的答案,但仍然欢迎任何回答。但我更希望人们告诉我如何生成编写一个像这样复杂查询的步骤。
我的答案是
Select S.sname
From Student S, Course C, Dept D, Takes T
Where T.cno=C.cno and D.deptno=C.deptno and S.sid = T.sid
Having COUNT(S.deptno=C.deptno) > COUNT( S.deptno != C.deptno)
我不确定在HAVING之后这样使用计数是否正确。 谢谢。