Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Classificação com base em duas colunas


Eu acho que a consulta a seguir obterá o resultado que você precisa. Primeiro você tem que calcular a classificação em uma subconsulta. Eu acho que é muito mais simples do que sua abordagem, você só precisa classificar seus resultados por vitórias e diferenças em ordem decrescente (supondo que os campos sejam números). Depois, basta selecionar todos os resultados e alterar ordem para jogador desc.
 SELECT player, wins, diff,rank from
 (
 SELECT player, wins, diff, @winrank := @winrank + 1 AS rank
 from tmpPoradi,(SELECT @winrank := 0) r 
 ORDER BY wins DESC,diff DESC
 )  rt
ORDER BY player

Espero não estar perdendo nada.