题20
根据下表编写SQL查询以报告每个学校的最低分数要求。如果有多个分数值满足上述条件,请选择最小值。如果输入数据不足以确定分数,则报告-1。
- Schools表中school_id是此表的主键。capacity包含一些学校的容纳能力信息,容量是学校能接受的最大学生人数;
- Exam表中score是主键,student count表示有至少在考试中获得分数的学生数量。
解题思路:
(1)采用左连接连接两表,连接条件容量需大于分数段学生数量;
(2)取最低分数,如果为null,则输出-1。
代码如下:
select school_id, ifnull(min(score), -1) as score
from Schools s
left join Exam e
on capacity >= student_count
group by school_id;