题目
表: Teacher
| Column Name | Type |
|---|---|
| teacher_id | int |
subject_id | int |
dept_id | int |
在 SQL 中,(subject_id, dept_id) 是该表的主键。 该表中的每一行都表示带有 teacher_id 的教师在系 dept_id 中教授科目 subject_id。
查询每位老师在大学里教授的科目种类的数量。
以 任意顺序 返回结果表。
查询结果格式示例如下。
示例 1:
输入: Teacher 表:
| teacher_id | subject_id | dept_id |
|---|---|---|
| 1 | 2 | 3 |
| 1 | 2 | 4 |
| 1 | 3 | 3 |
| 2 | 1 | 1 |
| 2 | 2 | 1 |
| 2 | 3 | 1 |
| 2 | 4 | 1 |
输出:
| teacher_id | cnt |
|---|---|
| 1 | 2 |
| 2 | 4 |
解释:
- 教师 1:
- 他在 3、4 系教科目 2。
- 他在 3 系教科目 3。
- 教师 2:
- 他在 1 系教科目 1。
- 他在 1 系教科目 2。
- 他在 1 系教科目 3。
- 他在 1 系教科目 4。
题解
sql
SELECT `teacher_id`, COUNT(DISTINCT `subject_id`) AS `cnt`
FROM `Teacher`
GROUP BY `teacher_id`1
2
3
2
3