Mysql 如何显示学生人数最少的系的名称

Mysql 如何显示学生人数最少的系的名称,mysql,sql,database,oracle,Mysql,Sql,Database,Oracle,如何编写查询以显示学生人数最少的系的名称。根据部门名称按升序对结果进行排序 select d.department_id, d.department_name from Department d join Student s on d.department_id = s.department_id group by d.department_id having count(s.student_id) = (select min(count(s2.student_id))

如何编写查询以显示学生人数最少的系的名称。根据部门名称按升序对结果进行排序

select d.department_id, d.department_name 
from Department d
join Student s on d.department_id = s.department_id
group by d.department_id
having count(s.student_id) = (select min(count(s2.student_id))
                              from student s2 
                                    join department d2 
                                    on s2.department_id = d2.department_id 
                               group by d2.department_id) 
order by d.department_name

必须联接这两个表才能获得所需的信息

你还必须根据所选信息对他们进行分组,这样你就可以计算学生人数

最后,你放置条件。需要子查询来检索最小学生人数。

从d系、学生s中选择d系\ U名称
select d.department_name from 
(select dd.department_name, count(di.department_id) as id from student di
join department dd on di.department_id=dd.department_id group by dd.department_name) d,
(select min(count(*)) as new from student group by department_id) d2
where d.id=d2.new;
d、 部门id=美国部门id 按部门名称分组
正在计数(s.s.student_id)无图片,谢谢。看看你做作业能得到什么?你试过写任何疑问吗?如果是,您的查询中有什么不起作用。您的目标数据库是Oracle还是MySQL?如果是oracle,数据库的哪个版本?执行
[top-n]
查询的语法也会相应变化。您能解释一下为什么这是一个可行的解决方案吗?
select department_name
  from Department
    join Student
     on Department.department_id=Student.department_id
       having count(*) in
        ( select min(count(*)) from Student group by department_id)
        group by Department.department_id,department_name
        order by department_name asc;
select d.department_name from Department d, Student s where 
d.department_id = s.department_id
group by d.department_name
having count(s.student_id)<=all
(select count(s.student_id) from Department d, Student s where 
d.department_id = s.department_id
group by d.department_name)
order by department_name;