文章目录

  • 1. 题目
  • 2. 解题

1. 题目

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

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

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

student 表格如下:

| Column Name  | Type      |
|--------------|-----------|
| student_id   | Integer   |
| student_name | String    |
| gender       | Character |
| dept_id      | Integer   |
其中, student_id 是学生的学号,
student_name 是学生的姓名,
gender 是学生的性别,
dept_id 是学生所属专业的专业编号。

department 表格如下:

| Column Name | Type    |
|-------------|---------|
| dept_id     | Integer |
| dept_name   | String  |
dept_id 是专业编号, dept_name 是专业名字。

这里是一个示例输入:

student 表格:| student_id | student_name | gender | dept_id |
|------------|--------------|--------|---------|
| 1          | Jack         | M      | 1       |
| 2          | Jane         | F      | 1       |
| 3          | Mark         | M      | 2       |
department 表格:| dept_id | dept_name   |
|---------|-------------|
| 1       | Engineering |
| 2       | Science     |
| 3       | Law         |
示例输出为:| dept_name   | student_number |
|-------------|----------------|
| Engineering | 2              |
| Science     | 1              |
| Law         | 0              |

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-student-number-in-departments
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 内层子表,先算出院系的人数
  • 外层跟 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(*) peoplefrom studentgroup by dept_id
) t
on d.dept_id = t.dept_id
order by student_number desc, dept_name

1721 ms


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode MySQL 580. 统计各专业学生人数相关推荐

  1. 【LeetCode-SQL】580. 统计各专业学生人数

    目录 一.题目 二.解决 1.left join 三.参考 一.题目 表: Student +--------------+---------+ | Column Name | Type | +--- ...

  2. 580. 统计各专业学生人数(SQL)

    题目:https://leetcode-cn.com/problems/count-student-number-in-departments/ 一所大学有 2 个数据表,分别是 student 和  ...

  3. 580. 统计各专业学生人数

    select dept_name , count(student_id) as student_number from department as A left outer join student ...

  4. LeetCode:Database 21.统计各专业学生人数

    要求:写一个查询语句,查询 department 表中每个专业的学生人数 (即使没有学生的专业也需列出),将你的查询结果按照学生人数降序排列,如果有两个或两个以上专业有相同的学生数目,将这些部门按照部 ...

  5. leetcode580. 统计各专业学生人数(SQL)

    一所大学有 2 个数据表,分别是 student 和 department ,这两个表保存着每个专业的学生数据和院系数据. 写一个查询语句,查询 department 表中每个专业的学生人数 (即使没 ...

  6. mysql查询各专业人数_SQL统计各专业学生人数

    统计"学生"表中学生的总人数的sql语句是: select count(*) from student; 其中select代表查询,count(*)是统计行数量,student是学 ...

  7. LeetCode(数据库)- 统计各专业学生人数

    题目链接:点击打开链接 题目大意:略. 解题思路:唯一注意的地方:要用 department.dept_id 而不能是 student.dept_id,因为后者可能改 dept_id 为 NULL. ...

  8. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 6丨统计各专业学生人数【难度中等】

      活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升. 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远.

  9. mysql不同分数的人数,mysql如何统计每个专业分数段的人数

    mysql如何统计每个专业分数段的人数 发布时间:2020-03-20 15:02:26 来源:亿速云 阅读:532 作者:小新 mysql如何统计每个专业分数段的人数的呢?下面由亿速云小编给大家详细 ...

最新文章

  1. 快手EB级HDFS挑战与实践
  2. 定义一个员工类(JAVA)
  3. Feature Selection: A Data Perspective --阅读笔记2 传统数据的特征选择算法
  4. 强化学习在机器人装配工艺中的应用
  5. ubuntu系统安装mysql(deb-bundle包)
  6. einops 张量操作
  7. 2020-11-23(dll注入方法)
  8. 请求页式存储管理中页面置换算法的模拟设计_操作系统-存储管理与文件管理-笔记...
  9. 通过Main的Checkpoint Restore加快Java启动速度
  10. ​Java Map中那些巧妙的设计
  11. 2017 年全球十大突破技术:逼格很高很难懂
  12. 凯尔卡C68全球版汽车电脑诊断仪
  13. MySQL双主高可用架构之MMM实战
  14. vdbench的作用_vdbench
  15. openlayer 图层上下_OpenLayers 之 图层(Layers) 详解
  16. 2020级训练赛10.23
  17. POJ-1436Horizontally Visible Segments
  18. 前端学习笔记之流式布局(百分比布局) 3.24
  19. ORA-06512 问题解决
  20. 3.致远OA二次开发Rest用户的介绍

热门文章

  1. 张正友相机标定Opencv实现以及标定流程标定结果评价图像矫正流程解析(附标定程序和棋盘图)
  2. [leetcode](4.21)4. 有效子数组的数目
  3. 使用栈实现中缀表达式转为后缀表达式和后缀表达式的求解
  4. 隐藏Android下的虚拟按键
  5. 4个强大的Linux服务器监控工具[转]
  6. bootstrap在iframe框架中实现由子页面在顶级页面打开模态框(modal)
  7. openresty package.path require 报错
  8. JQUERY解析XML IE8的兼容问题
  9. 为什么不能在中断上半部休眠?
  10. 有用的Copy-On-write,写时复制