2013-12-10 119 views
0

我有一個包含學生ID,課程ID和教師ID的註冊表。通過加入進行分組的SQL查詢

___________________ 
| sID | cID | tID | 
___________________ 
| 1 | 1 | 1 | 
| 1 | 2 | 2 | 
| 1 | 3 | 3 | 
| 2 | 1 | 1 | 
| 2 | 3 | 5 | 
| 3 | 1 | 1 | 
| 3 | 2 | 2 | 

我想得到一個表格,可以告訴我每個課程中有多少學生與某個教授。換句話說,我想這樣的:

_____________________________ 
| cID | tID | numOfStudents | 
____________________________ 
| 1 | 1 |  3  | 
| 2 | 2 |  2  | 
| 3 | 3 |  1  | 
| 3 | 5 |  1  | 

我已經試過

SELECT cID, tID, count(sID) 
FROM enrollment 
GROUP BY tID 

但這種類型的公式,以不同的組合是不是爲我工作。有沒有人有任何其他建議?

回答

2

只需添加cid到GROUP BY:

SELECT cID, tID, count(*) 
FROM enrollment 
GROUP BY cid,tID 

sqlfiddle demo

docs

如果存在GROUP BY,則對於SELECT列表 表達式來說,除了合計 函數內的未分組列之外無效,因爲對於未分組的列將有多個可能的值返回 。

0

SELECT CID,TID數(SID) 對於入選 GROUP BY 1,2