我有一个包含学生ID,课程ID和教师ID的注册表。
___________________
| 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
但是这种不同组合的配方对我不起作用。有没有人有任何其他建议?
答案 0 :(得分:2)
只需将cid
添加到GROUP BY:
SELECT cID, tID, count(*)
FROM enrollment
GROUP BY cid,tID
来自docs:
当GROUP BY存在时,它对SELECT列表无效 用于引用未聚合列的表达式,但在聚合中除外 函数,因为将返回多个可能的值 对于未分组的列。
答案 1 :(得分:0)
SELECT cID,tID,count(sID) 从入学 GROUP BY 1,2