我有如下的SQL:
select a.dept, a.name from students a group by dept, name order by dept, name
并得到结果:
dept name -----+--------- CS | Aarthi CS | Hansan EE | S.F EE | Nikke2
我想总结每个部门的学生人数,如下所示:
dept name count -----+-----------+------ CS | Aarthi | 2 CS | Hansan | 2 EE | S.F | 2 EE | Nikke2 | 2 Math | Joel | 1
我该如何编写sql?
尽管您似乎并未显示所有表格,但我只能假设还有每位学生的实际入学表格
select a.Dept, count(*) as TotalStudents from students a group by a.Dept
如果您想要与每个学生相关联的每个部门的总数(这没有意义),则可能必须这样做…
select a.Dept, a.Name, b.TotalStudents from students a, ( select Dept, count(*) TotalStudents from students group by Dept ) b where a.Dept = b.Dept
我对“姓名”列的解释是学生的姓名,而不是班级实际讲师的姓名,因此,我进行子选择/加入。否则,就像其他人一样,只需要使用COUNT(*)作为第三列即可。