MySQL高阶1988-找出没所学校的最低分数要求

目录

题目

准备数据

分析数据

总结


题目

每年,学校会公布学生申请所需的最低分数要求。学校根据所有学生的考试成绩来决定其最低分数要求。

  1. 学校希望确保即使 一个满足分数要求的学生都申请该学校,学校也有足够的能力接纳每一个学生。
  2. 学校也希望 尽可能多的学生能申请该学校。
  3. 学校 必须 使用在 Exam 表中的 score 来作为最低分数要求。

编写一个解决方案,报告每所学校的 最低分数要求 。如果同时有多个 score 值满足上述要求,则选择其中 最小的 一个。如果数据不足以决定 最低分数要求 ,那么输出 -1

返回的结果表可以按 任意顺序排序。

准备数据

sql 复制代码
Create table If Not Exists Schools (school_id int, capacity int)
Create table If Not Exists Exam (score int, student_count int)
Truncate table Schools
insert into Schools (school_id, capacity) values ('11', '151')
insert into Schools (school_id, capacity) values ('5', '48')
insert into Schools (school_id, capacity) values ('9', '9')
insert into Schools (school_id, capacity) values ('10', '99')
    Truncate table Exam
insert into Exam (score, student_count) values ('975', '10')
insert into Exam (score, student_count) values ('966', '60')
insert into Exam (score, student_count) values ('844', '76')
insert into Exam (score, student_count) values ('749', '76')
insert into Exam (score, student_count) values ('744', '100')

schools表

exam表

分析数据

sql 复制代码
select
    school_id,ifnull(min(score),-1) as score
    from schools s left join exam e on capacity >= student_count
group by school_id ;

总结

多表连接,并不局限于条件等于

相关推荐
kyriewen111 天前
你点的“刷新”是假刷新?前端路由的瞒天过海术
开发语言·前端·javascript·ecmascript·html5
别抢我的锅包肉1 天前
【MySQL】第四节 - 多表查询、多表关系全解析
数据库·mysql·datagrip
zzh0811 天前
MySQL高可用集群笔记
数据库·笔记·mysql
skywalk81631 天前
Kotti Next的tinyfrontend前端模仿Kotti 首页布局还是不太好看,感觉比Kotti差一点
前端
Shely20171 天前
MySQL数据表管理
数据库·mysql
寂夜了无痕1 天前
MySQL 主从延迟全链路根因诊断与破局法则
数据库·mysql·mysql主从延迟
爱丽_1 天前
分页为什么越翻越慢:offset 陷阱、seek 分页与索引排序优化
数据库·mysql
Bat U1 天前
MySQL数据库|表设计+新增+分组查询
数据库·mysql
RopenYuan1 天前
FastAPI -API Router的应用
前端·网络·python