sql >> Databasteknik >  >> RDS >> Mysql

Rangordning baserat på två kolumner

Jag tror att följande fråga kommer att få det resultat du behöver. Först måste du beräkna rang i en delfråga. Jag tror att det är mycket enklare än ditt tillvägagångssätt, du behöver bara sortera dina resultat efter vinster och skillnader i fallande ordning (förutsatt att fälten är siffror). Sedan väljer du bara alla resultat och ändrar beställning till spelarbeskrivning.

 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

Hoppas jag inte missar något.




  1. mysqldb på python 2.6+ (win32)

  2. MySQL-dödsprocessen är att användaren inte har tillräckligt med poäng PHP

  3. Varför anses det vara dålig praxis att använda markörer i SQL Server?

  4. Hur tar man bort ett antal poster samtidigt på MySQL?