在進行數據庫的數據查詢時,常常需要按照成績排名,查詢每科的前三名學生。下面將介紹使用 MySQL 實現查詢方法。
SELECT c.course_name, s.student_id, s.student_name, sc.score FROM course c JOIN score sc ON c.course_id = sc.course_id JOIN student s ON s.student_id = sc.student_id WHERE ( SELECT COUNT(DISTINCT score) FROM score sc1 WHERE sc1.course_id = sc.course_id AND sc1.score >= sc.score )<= 3 ORDER BY c.course_id, sc.score DESC
以上 SQL 語句實現了查詢每科前三名學生的功能。首先,從 course 表、score 表和 student 表中獲取需要的數據。然后,使用子查詢統計每個學生在該科目中得分最高的前三名,并將結果與原始查詢結果進行比較篩選。
注意,這里的“得分最高的前三名”是指若干位學生得分相同,則結果集中會出現相同的排名。例如,如果某個科目中有五名學生的分數分別為100分、100分、99分、98分和97分,則前三名學生的分數分別為100分、100分和99分。
下一篇css3 海報