56,677
社区成员
发帖
与我相关
我的任务
分享
select 学生,学科,成绩 from(
SELECT
CASE
WHEN @学科 != 学科 THEN @dense_rank:= 1
WHEN @成绩 = 成绩 THEN @dense_rank
ELSE @dense_rank:= @dense_rank + 1
END AS DENSE_RANK,
学生,
@学科 :=学科 AS 学科,
@成绩 := 成绩 AS 成绩
FROM
(SELECT @学科:='') k,
(SELECT @成绩:=0) v,
(SELECT @dense_rank:=0) d,
表名 main
ORDER BY
学科,成绩 desc)t where t.DENSE_RANK<=2