Mysql
 sql >> Base de données >  >> RDS >> Mysql

Classement basé sur deux colonnes

Je pense que la requête suivante obtiendra le résultat dont vous avez besoin. Vous devez d'abord calculer le rang dans une sous-requête.Je pense que c'est beaucoup plus simple que votre approche, il vous suffit de trier vos résultats par victoires et diff dans l'ordre décroissant (en supposant que les champs sont des nombres).Ensuite, il vous suffit de sélectionner tous les résultats et de modifier ordre vers la description du joueur.

 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

J'espère que je n'ai rien raté.