mysql подзапрос COUNT с путаницей предложения WHERE

0

Я весь день пил кнопки, но не мог заставить этот запрос работать. У меня есть 3 студента, курсы и таблица зачисления, которые показывают, какие классы учащиеся зачислили в

В запросе необходимо получить все курсы, в которых учатся как минимум 2 учащиеся, которые заказываются по курсу с наибольшим количеством студентов

Я разработал, как получить подсчет числа учащихся в классе, но у него проблемы с фильтрацией заявок на> = 2 ученика

-- coursetable -----------------------------

CREATE TABLE StudentTable(
studentID VARCHAR(255) NOT NULL,
firstName VARCHAR(255) NOT NULL,
LastName VARCHAR(255) NOT NULL,
DOB DATE NULL,
CONSTRAINT pk_studentTable PRIMARY KEY(studentID)
);

-- coursetable -----------------------

 CREATE TABLE CourseTable(
 courseID VARCHAR(255) NOT NULL,
 courseName VARCHAR(255) NOT NULL,
 hoursPerWeek int(11) NULL,
 startDate DATE NULL,
 CONSTRAINT pk_courseTable PRIMARY KEY(courseID)
 );

-- enrolment table --

CREATE TABLE EnrolmentTable(
    studentID VARCHAR(255) NOT NULL,
    CourseID VARCHAR(255) NOT NULL,
CONSTRAINT pk_enrolmentTable PRIMARY KEY(studentID, CourseID)
);

это запрос, который я могу сделать, показывая регистрацию всех классов, но он показывает, что один класс имеет только 1 учащегося. Мне нужно отображать только классы с => 2 зачисления

    SELECT ct.CourseName AS Course_Name, COUNT(st.studentID) AS Students_Enrolled
FROM EnrolmentTable et
INNER JOIN courseTable ct ON ct.courseID = et.courseID
INNER JOIN studentTable st ON st.studentID = et.studentID
GROUP BY et.courseID;

Мне нужно использовать право подзапроса? но не уверен, как

  • 0
    Классы как курсы?
Теги:
mariadb
aggregate-functions
subquery

1 ответ

1
Лучший ответ

Вы можете использовать HAVING для фильтрации результата

SELECT ct.CourseName AS Course_Name, COUNT(st.studentID) AS Students_Enrolled
FROM EnrolmentTable et
INNER JOIN courseTable ct ON ct.courseID = et.courseID
INNER JOIN studentTable st ON st.studentID = et.studentID
GROUP BY et.courseID
HAVING Students_Enrolled> 1
ORDER BY Students_Enrolled DESC
  • 0
    ОООХХ теперь я помню, что имеешь спасибо! Боже мой, я печатал всевозможные тарабарщины, чтобы попытаться заставить их работать, спасибо, что оценил.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню