Mysql
 sql >> Database >  >> RDS >> Mysql

Classifica in base a due colonne

Penso che la seguente query otterrà il risultato di cui hai bisogno. Per prima cosa devi calcolare il rango in una sottoquery. Penso che sia molto più semplice del tuo approccio, devi solo ordinare i risultati per vittorie e differenze in ordine decrescente (supponendo che i campi siano numeri). Quindi seleziona tutti i risultati e cambia ordina alla descrizione del giocatore.

 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

Spero di non perdermi nulla.