С учетом схемы:
Student(Snum, Sname)
Course(Cnum, Cname)
Prerequisite(Cnum, Prereq)
Professor(Pnum,Pname, Dept, Office)
Enrollment(Snum, Cnum, Term, Section, Mark)
Schedule(Cnum, Term, Section, Days, Time, Room)
Class(Cnum, Term, Section, Instructor)
Я придумал:
SELECT * FROM Student s
HAVING MIN(
SELECT COUNT(*) FROM Enrollment e
WHERE e.Snum = s.Snum
GROUP BY e.Term
) > 6
Но я получаю:
/ * Ошибка SQL (1064): у вас есть ошибка
в вашем синтаксисе SQL; проверить руководство
что соответствует вашему серверу MySQL
версия для правильного использования синтаксиса
около 'ВЫБЕРИТЕ СЧЕТЧИК (*) ИЗ ЗАПИСИ
ГДЕ e.Snum = s.Snum GROUP BY
e.Term)> 'в строке 3 * /
Есть идеи, как я могу это исправить? Спасибо!
Кроме того, было бы отрадно знать, что у меня правильная логика =)
РЕДАКТИРОВАТЬ: ОКОНЧАТЕЛЬНЫЙ ОТВЕТ ...
SELECT Student.Sname
FROM(
SELECT COUNT(DISTINCT Cnum) as `classes`, e.Term as `term`, e.Snum as `student`
FROM Enrollment e
GROUP BY e.Term, e.Snum
) x
JOIN Student ON Student.Snum = `student`
WHERE x.`classes` > 6