select学生,学科,成绩from(
SELECT
CASE
WHEN@学科!=学科THEN@dense_rank:=1
WHEN@成绩=成绩THEN@dense_rank
ELSE@dense_rank:=@dense_rank+1
ENDASDENSE_RANK,
学生,
@学科:=学科AS学科,
@成绩:=成绩AS成绩
FROM
(SELECT@学科:='')k,
(SELECT@成绩:=0)v,
(SELECT@dense_rank:=0)d,
表名main
ORDERBY
学科,成绩desc)twheret.DENSE_RANK
|