鉴于以下模式,我应该为这些问题编写查询。编写SQL查询需要帮助(连接,子查询)
我的第一个查询运行但我没有得到结果,第二个查询出现subquery returns more than one row
错误。
student (sid, sname, sex, birthdate, gpa)
prof (pname, dname)
course (cnum, dname, cname)
section (cnum, secnum, pname)
enroll (sid, cnum, secnum, grade)
对于每门课程,返回段(numsections)的数量,学生的总入学人数(numstudents),平均品位(avggrade),以及不同的教授谁教课程的数量(numprofs) 。只显示化学或计算机科学系的课程。确保显示课程,即使他们没有学生。如果没有教授教授课程,不要显示课程。
返回至少两门课程中获得高于其课程部分平均成绩的学生。通过比平均水平和课程编号顺序只显示前5
SQL查询:
SELECT C.cnum, C.cname, COUNT(*) AS numsections, COUNT(E.sid) AS numstudents,
AVG(E.grade) AS avggrade, COUNT(P.pname) AS numprofs
FROM course C
JOIN section S ON C.cnum = S.cnum
JOIN enroll E ON C.cnum = E.cnum
JOIN prof P ON S.pname = P.pname
WHERE C.cname = 'Chemistry' OR C.cname = 'Computer Science'
GROUP BY C.cnum, C.cname;`
SELECT S.sid, S.sname
FROM student S
LEFT JOIN enroll E ON S.sid = E.sid
WHERE E.grade > (SELECT AVG(grade)
FROM course C JOIN enroll E2
ON C.cnum = E2.cnum
GROUP BY C.cnum
LIMIT 5);`
请仔细阅读[**如何对向**](http://stackoverflow.com/help/how-to-ask) \t \t这里是一个伟大的地方,[** **开始执行](http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)了解如何提高您的问题质量并获得更好的答案。 –