MySQL是一款強大的關系型數據庫管理系統,廣泛應用于各種Web應用程序中。在教育系統中,常常需要查詢每個年級的每個班級前三名學生的成績信息。本文將介紹如何使用MySQL查詢實現這個功能。
首先,需要的表格結構如下:
CREATE TABLE `students` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `class` varchar(50) NOT NULL, `grade` varchar(50) NOT NULL, `score` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
該表格包含每個學生的姓名、所在班級、所在年級和成績等信息。
接下來,使用如下的SQL語句查詢每個班級前三名學生的成績信息:
SELECT grade,class,name,score FROM ( SELECT grade,class,name,score, @row_number:=CASE WHEN @class=class AND @grade=grade THEN @row_number+1 WHEN @class<>class OR @grade<>grade THEN 1 END AS row_number, @class:=class,@grade:=grade FROM students, (SELECT @class:=null,@grade:=null,@row_number:=0) r ORDER BY grade,class,score DESC ) t WHERE t.row_number<=3;
該SQL語句使用內部查詢方式,先將每個班級的學生按成績從高到低排序,并根據班級和年級進行分組,在每個分組內為每個學生按成績排名,最后篩選出排名前三名的學生信息。
以上就是如何使用MySQL查詢每個年級每個班前三名學生的成績信息的方法。
上一篇css3動畫漣漪效果
下一篇css3動畫有抖動 圖片