SELECT name,course,score, rank FROM(
SELECT
tempstu.name,
tempstu.course,
tempstu.score,
@rownum:=@rownum+1,
IF(@pdept=tempstu.name,@rank:=@rank+1,@rank:=1) AS rank,
@pdept:=tempstu.name
FROM
(
SELECT *
FROM stu
) tempstu ,
(
SELECT @rownum :=0 , @pdept := NULL ,@rank:=0
) a
) AS sult
SELECT
tempstu.name,
tempstu.course,
tempstu.score,
@rownum:=@rownum+1,
IF(@pdept=tempstu.name,@rank:=@rank+1,@rank:=1) AS rank,
@pdept:=tempstu.name
FROM
(
SELECT *
FROM stu
) tempstu ,
(
SELECT @rownum :=0 , @pdept := NULL ,@rank:=0
) a
) AS sult