题解 | #得分不小于平均分的最低分#
得分不小于平均分的最低分
https://www.nowcoder.com/practice/3de23f1204694e74b7deef08922805b2
思路:嵌套查询
题干:找到SQL试卷得分不小于该类试卷平均得分的用户最低得分
分步查询法:
1)找 SQL 试卷,代码如下:
SELECT exam_id FROM examination_info WHERE tag = 'SQL';2)该类试卷(SQL试卷)的平均分,用聚合函数 AVG(score) 实现,伪代码如下:
SELECT AVG(score) FROM exam_record WHERE exam_id IN (sql试卷的exam_id);
注意:由于 SQL 试卷 的exam_id有很多种,所以这里用了 IN 关键字。
3)SQL试卷且不小于(大于等于)该试卷平均分的最低分,用聚合函数 MIN(score) 来实现,伪代码如下:
SELECT MIN(score) FROM exam_record WHERE score >= (sql试卷平均分) AND exam_id IN (sql试卷的exam_id);在这里,基本已经打好框架实现了题目要求,现在,将他们组合起来吧,其结果就是:
SELECT MIN(score) FROM exam_record WHERE score >= (SELECT AVG(score) FROM exam_record WHERE exam_id IN (SELECT exam_id FROM examination_info WHERE tag = 'SQL')) AND exam_id IN (SELECT exam_id FROM examination_info WHERE tag = 'SQL');所以,通过这道题,我们可以学会聚合函数MIN()、AVG()、IN关键字的使用,了解嵌套查询的基本思路。