Считать в счет - PullRequest
       14

Считать в счет

1 голос
/ 28 ноября 2010

REVISED: Хорошо, благодаря всем вашим отзывам, я понял, что я делаю не так (извините, ребята). Я хватаю CourseID, который считается разделом, а не фактическим курсом. Для того, чтобы получить фактическое название курса, я должен перейти к таблице курсов.

Так что теперь у меня есть StudentID из Enrollment и CourseNum из Course, которые нужно использовать для подсчета. Я постараюсь поработать с тем, что вы, ребята, предоставили, чтобы увидеть, смогу ли я получить результаты.

EDIT: Вот мой пересмотренный SQL. Это дает мне общее количество курсов для каждого студента. Я получаю там:

SELECT     Count(DISTINCT Course.courseNum), Grades.studentID
FROM         Grades INNER JOIN
             Course ON Grades.courseID = Course.courseID
             GROUP BY Grades.studentID;

Итоговый код на тот случай, если кому не все равно:

SELECT COUNT(NumCourses) FROM 
(SELECT     Count(DISTINCT Course.courseNum)AS NumCourses
FROM         Grades INNER JOIN
                      Course ON Grades.courseID = Course.courseID
                     GROUP BY Grades.studentID
           HAVING Count(DISTINCT Course.courseNum) = 1) a;

Ответы [ 6 ]

3 голосов
/ 28 ноября 2010

Попробуйте это:

select count(studentId), count(courseId) from enrolment group by courseId having (count(courseId) = 2);
1 голос
/ 28 ноября 2010

Чтобы получить общее количество студентов на 4+ курсах, используйте SQL:

SELECT  COUNT(CourseCount) AS CourseCount
FROM    (
    SELECT  StudentID, COUNT(CourseID) AS CourseCount
            FROM enrollment
            GROUP BY StudentID
            HAVING  (COUNT(CourseID) >= 4)) AS T

Намного проще подсчитать количество студентов, используя второй запрос.

0 голосов
/ 28 ноября 2010
select count(*)
  from (select student_id from enrollment group by student_id having count(*) = 4)

Внутренний запрос дает вам идентификаторы студентов, которые записались ровно на 4 курса, тогда я их считаю.

0 голосов
/ 28 ноября 2010

Я думал, что вы хотели количество студентов, которые зачислены ровно на четыре курса.Если вы хотите посчитать количество студентов и количество курсов, сделайте следующее:

SELECT * FROM (SELECT COUNT(*) AS NumStudents FROM (SELECT DISTINCT studendid FROM enrollment)), (SELECT COUNT(*) AS NumCourses FROM (SELECT DISTINCT courseid FROM enrollment))
0 голосов
/ 28 ноября 2010
SELECT COUNT(NumCourses) AS NumStudents, NumCourses FROM (SELECT COUNT(courseID) AS NumCourses FROM enrollment GROUP BY courseID HAVING COUNT(courseID) = 4) As SomeTableAlias
0 голосов
/ 28 ноября 2010
SELECT COUNT(*) FROM
    (SELECT COUNT(*) FROM enrollment 
     GROUP BY studentid HAVING COUNT(*) = 4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...