​LeetCode刷题实战580:统计各专业学生人数

算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !

今天和大家聊的问题叫做 统计各专业学生人数,我们先来看题面:

https://leetcode-cn.com/problems/count-student-number-in-departments/

一所大学有 2 个数据表,分别是 student 和 department ,这两个表保存着每个专业的学生数据和院系数据。

写一个查询语句,查询 department 表中每个专业的学生人数 (即使没有学生的专业也需列出)。

将你的查询结果按照学生人数降序排列。

 如果有两个或两个以上专业有相同的学生数目,将这些部门按照部门名字的字典序从小到大排列。

d68d380ca1e1186c369b4829a31d86f7.png

cc0f6dc9bfe21b05b8da4de5cf4449e6.png

解题

https://cloud.tencent.com/developer/article/1787795

内层子表,先算出院系的人数

外层跟 department 表左连接

# Write your MySQL query statement below
select dept_name, ifnull(t.people,0) student_number
from department d left join
(
    select dept_id, count(*) people
    from student
    group by dept_id
) t
on d.dept_id = t.dept_id
order by student_number desc, dept_name

好了,今天的文章就到这里,如果觉得有所收获,请顺手点个在看或者转发吧,你们的支持是我最大的动力 。

上期推文:

LeetCode1-560题汇总,希望对你有点帮助!

LeetCode刷题实战561:数组拆分 I

LeetCode刷题实战562:矩阵中最长的连续1线段

LeetCode刷题实战563:二叉树的坡度

LeetCode刷题实战564:寻找最近的回文数

LeetCode刷题实战565:数组嵌套

LeetCode刷题实战566:重塑矩阵

LeetCode刷题实战567:字符串的排列

LeetCode刷题实战568:最大休假天数

LeetCode刷题实战569:员工薪水中位数

LeetCode刷题实战570:至少有5名直接下属的经理

LeetCode刷题实战571:给定数字的频率查询中位数

LeetCode刷题实战572:另一棵树的子树

LeetCode刷题实战573:松鼠模拟

LeetCode刷题实战574:当选者

LeetCode刷题实战575:分糖果

LeetCode刷题实战576:出界的路径数

LeetCode刷题实战577:员工奖金

LeetCode刷题实战578:查询回答率最高的问题

LeetCode刷题实战579:查询员工的累计薪水

d3cb64d03c926623e98ae11cff023370.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值