Gegeben das folgende Schema, ich soll Abfragen für die Fragen schreiben.Benötigen Sie Hilfe beim Schreiben von SQL-Abfragen (Joins, Unterabfragen)
Meine erste Abfrage läuft, aber ich bekomme kein Ergebnis und die zweite gibt den subquery returns more than one row
Fehler.
student (sid, sname, sex, birthdate, gpa)
prof (pname, dname)
course (cnum, dname, cname)
section (cnum, secnum, pname)
enroll (sid, cnum, secnum, grade)
Für jeden Kurs, geben die Anzahl der Abschnitte (numsections), die Gesamtzahl der Studierenden (numstudents), Durchschnittsnote (avggrade) und Anzahl der verschiedenen Professoren, die den Kurs gelehrt (numprofs) . Nur Kurse in Chemie oder Informatik anzeigen. Stellen Sie sicher, dass Kurse auch dann angezeigt werden, wenn sie keine Schüler haben. Zeigen Sie keinen Kurs, wenn keine Professoren diesen Kurs unterrichten.
Geben Sie die Schüler zurück, die in mindestens zwei Kursen eine höhere Note als der Durchschnitt ihres Kursabschnitts erhalten haben. Sortieren nach Anzahl der Kurse höher als der Durchschnitt und zeigen nur Top 5.
SQL-Abfrage:
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);`
Bitte lesen Sie [** How-to-Frage **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein toller Ort, um [** START ** ] (http://spaghettiba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) um zu erfahren, wie Sie die Qualität Ihrer Fragen verbessern und bessere Antworten erhalten. –