我对mysql很陌生,并尝试根据两个字段对排名最高的记录进行排名
与您共享当前脚本和输出以及所需的输出
当前脚本:
select u_rank, c_rank,u_name,c_name,
@curRank := @curRank + 1 AS rank
from (
SELECT u_rank, c_rank,u_name,c_name
from abc
) a,
(
select @curRank := 0
) r
order by c_rank,u_rank
当前输出
我想要的输出是
请帮助
SET @rank1 = 0;
SET @rank2 = 0;
SET @u_name = '';
SELECT u_rank, c_rank, u_name, c_name, @rank2 := @rank2 + 1 AS rank
FROM (
SELECT u_rank,
c_rank,
c_name,
@rank1 := (@rank1 + 1 - IF(@u_name = u_name, 0, @rank1)) AS rank1,
@u_name := u_name AS u_name
FROM abc
ORDER BY u_name, c_rank
) foo
ORDER BY rank1, u_rank;