1412.(Hard)查找成绩处于中游的学生
表: Student
+---------------------+---------+
| Column Name | Type |
+---------------------+---------+
| student_id | int |
| student_name | varchar |
+---------------------+---------+
student_id 是该表主键.
student_name 学生名字.表: Exam
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| exam_id | int |
| student_id | int |
| score | int |
+---------------+---------+
(exam_id, student_id) 是该表主键.
学生 student_id 在测验 exam_id 中得分为 score.成绩处于中游的学生是指至少参加了一次测验, 且得分既不是最高分也不是最低分的学生。
写一个 SQL 语句,找出在 所有 测验中都处于中游的学生 (student_id, student_name)。
不要返回从来没有参加过测验的学生。返回结果表按照 student_id 排序。
查询结果格式如下。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-the-quiet-students-in-all-exams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Solution
重点在于用rank()窗口函数算出正数排名和倒数排名,再选出min都不为1的学生(既没有正数第一也没有倒数第一过)
Table Schema
Last updated
Was this helpful?