每日一题-25(统计各专业学生人数)

题25:

根据下表写一个查询语句,查询department表中每个专业的学生人数(即使没有学生的专业也需列出)。
要求:根据学生人数降序排列。如果有两个或两个以上专业有相同的学生数目,将这些部门按照部门名字的字典序从小到大排列。
在这里插入图片描述
其中:

  • student表中:student_id 是学生的学号, student_name 是学生的姓名, gender 是学生的性别, dept_id 是学生所属专业的专业编号;
  • department表中:dept_id是专业编号,dept_name是专业名字。

解题思路:
使用GROUP BY函数将一个部门中的学生进行聚合,然后使用COUNT函数来统计每个部门数据的数目。注意的是因为存在没有学生的专业,统计人数时不能使用count(*), 使用COUNT(student_id)。

select a.dept_name ,count(b.student_id) as student_number
from department a left join student  b on a.dept_id = b.dept_id 
group by a.dept_id
order by student_number desc,a.dept_name;

猜你喜欢

转载自blog.csdn.net/Txixi/article/details/121591078