糖逗 发表于 2020-4-9 00:46:29

MySQL(1112. 每位学生的最高成绩)

题目描述:
表:Enrollments

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| student_id    | int   |
| course_id   | int   |
| grade         | int   |
+---------------+---------+
(student_id, course_id) 是该表的主键。

 

编写一个 SQL 查询,查询每位学生获得的最高成绩和它所对应的科目,若科目成绩并列,取 course_id 最小的一门。查询结果需按 student_id 增序进行排序。

查询结果格式如下所示:

Enrollments 表:
+------------+-------------------+
| student_id | course_id | grade |
+------------+-----------+-------+
| 2          | 2         | 95    |
| 2          | 3         | 95    |
| 1          | 1         | 90    |
| 1          | 2         | 99    |
| 3          | 1         | 80    |
| 3          | 2         | 75    |
| 3          | 3         | 82    |
+------------+-----------+-------+

Result 表:
+------------+-------------------+
| student_id | course_id | grade |
+------------+-----------+-------+
| 1          | 2         | 99    |
| 2          | 2         | 95    |
| 3          | 3         | 82    |
+------------+-----------+-------+

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/highest-grade-for-each-student
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


select student_id, min(course_id) course_id, grade
from enrollments
where (student_id,grade) in
(select student_id,max(grade)
from enrollments
group by student_id)
group by student_id



注意事项:
1.这道题做得不好,还要再练习。

嘉岳呀 发表于 2020-7-17 12:04:25

这是什么语言

糖逗 发表于 2020-7-17 15:36:00

嘉岳呀 发表于 2020-7-17 12:04
这是什么语言

看标题

嘉岳呀 发表于 2020-7-17 19:51:47

MySQL语言?
页: [1]
查看完整版本: MySQL(1112. 每位学生的最高成绩)