mysql - 显示学生人数最多的院系名称

标签 mysql sql database rdbms

总共有两张表,一张是“Department”表,其中包含department_name、department_block_number和department_id(主键),另一个表是“Student”,其中包含student_name、student_id和department_id(外键)。因此,根据这种情况,我们必须显示学生人数最多的系的名称。

我尝试了一些东西,下面你可以找到我的代码,但它没有按预期工作,所以你能帮我纠正它吗?

select u 
from 
    (select count(s.student_id) cnt,d.department_name u 
    from department d 
    join student s using(department_id) 
    group by d.department_name 
    where cnt==(select max(cntt) from (select
        count(ss.student_id) cntt,dd.department_name 
        from department dd 
        join student ss using(department_id) 
        group by dd.department_name)
    )
);

注意:这个问题属于子查询部分。

最佳答案

您只需按降序统计所有院系的所有学生,然后限制为第一个结果:

SELECT a.`department_name`
    count(b.`student_id`) as `num_students`
FROM `Department` a
JOIN `Student` b
ON a.`department_id` = b.`department_id`
GROUP BY `a.department_id`
ORDER BY count(b.`student_id`) DESC
LIMIT 1;

关于mysql - 显示学生人数最多的院系名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44762230/

相关文章:

sql-server - 我们的数据库怎么会导致 SqlPackage 失败? (SQL72018)

c# - mysql 更新内部连接表中的行

mongodb - 在 Meteor 的哪里扩展带有计算字段的集合文档?

Java,Mysql-列名标识为变量

javascript - 如何在 PHP 中以友好的 View 查看内连接中的数据

mysql - 将查询结果分配给 MySQL 过程中的变量

mysql - 参数索引超出范围 MySQL PreparedStatement?

php - 如果连接查询中没有 B 值,则获取具有 A 值的项目(重复项目)

sql - 在 SQL 外连接中,查询的哪一部分将表放在 "left"或 "right"上?

sql - 格式化 IT 代码以匹配 Power Query/Power BI