你印象最深的一道SQL题目是什么?
分享一道经典的SQL题:查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
SELECT s1.student_id, s1.course_id, s1.score
FROM (
SELECT student_id, course_id, score, MAX(score) as max_score
FROM scores
GROUP BY student_id, course_id
) AS s1
JOIN scores AS s2 ON s1.student_id = s2.student_id AND s1.course_id = s2.course_id AND s1.max_score = s2.score;
这个SQL程序的作用是:从scores表中获取每个学生的ID、课程ID和成绩,然后使用子查询来获取每个学生的最高成绩。接着使用INNER JOIN将子查询的结果与原表scores连接起来,只保留那些在两个表中都存在且成绩相同的学生记录。最后选择需要的列,即student_id、course_id和score,并按照最高成绩进行排序。
赞1
踩0