鑑於以下模式,我應該爲這些問題編寫查詢。編寫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/)瞭解如何提高您的問題質量並獲得更好的答案。 –