[使用排名函数的mysql中基于多列的数据排名

问题描述 投票:-1回答:1

我对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

当前输出

enter image description here

我想要的输出是

enter image description here

请帮助

mysql ranking
1个回答
0
投票
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;
© www.soinside.com 2019 - 2024. All rights reserved.