2016-02-06 63 views
2

我有了下面的表格如何統計每位教師授課的學生人數?

Courses: CourseID*, CourseName, TeacherID 
Teachers: TeacherID*, TeacherName 
Students: StudentID*, StudentName 
StudentCourses: CourseID*, StudentID* 

傳說數據庫: *是主鍵。

如何編寫查詢產生每個老師教的學生數?

例如

TeacherName, Count 
Bob 15 
Sarah 5 
Zubair 1 

編輯

select "TeacherName", count(*) 
from courses inner join teachers on courses."TeacherID" = teachers."TeacherI" 
join sutdentcourses on sutdentcourses."CourseID" = courses."CourseID" 
group by "TeacherName" 
order by "TeacherName"; 
+0

這是一個帶有「join」的非常基本的聚合查詢。你至少應該嘗試一下。 –

+0

@idclark你需要老師和學生。與他們有關的唯一事情就是課程。所以你需要加入這些數據。現在,您需要每位教師的學生人數,以便您查看聚合函數。有了這些知識就可以得到一個SQL,然後我們可以進一步指導你,如果你仍然不明白。 http://www.w3schools.com/sql/並查看JOIN和GROUP BY。 –

+0

@GordonLinoff有沒有比我的解決方案更有效的方法? – idclark

回答

2

製作所需的表教師,課程和StudentCourses,集團之間的記錄由TeacherName並加入算上StudentID。

SELECT TeacherName, COUNT(StudentID) 
FROM Teachers JOIN Courses USING(TeacherID) 
JOIN StudentCourses USING(CourseID) 
GROUP BY TeacherName