SELECT
a.学生编号,
a.成绩,
IF(
@课程名称=a.课程名称 and @考试日期:=a.`考试日期`,@rank:=@rank+1 ,@rank:=1
)as rank,
(@课程名称:=a.课程名称) 课程名称,
(@考试日期:=a.考试日期) 考试日期
FROM
(
select 学生编号, 课程名称, 考试日期, 成绩+0 成绩
from sheet1
) a,
(
SELECT
@rank:=0,@className:=NULL,@考试日期:=NULL
) b
ORDER BY
a.课程名称,
a.`考试日期`,
a.`成绩`DESC;