目录
题目
每年,学校会公布学生申请所需的最低分数要求。学校根据所有学生的考试成绩来决定其最低分数要求。
- 学校希望确保即使 每 一个满足分数要求的学生都申请该学校,学校也有足够的能力接纳每一个学生。
- 学校也希望 尽可能多的学生能申请该学校。
- 学校 必须 使用在
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 ;
总结
多表连接,并不局限于条件等于