sql >> Database >  >> RDS >> Mysql

Rangschikking op basis van twee kolommen

Ik denk dat de volgende query het gewenste resultaat zal opleveren. Eerst moet je de rangorde in een subquery berekenen. Ik denk dat het veel eenvoudiger is dan je aanpak, je hoeft alleen je resultaten te sorteren op overwinningen en diff in aflopende volgorde (ervan uitgaande dat de velden getallen zijn). Selecteer vervolgens alle resultaten en verander volgorde naar spelerbeschrijving.

 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

Ik hoop dat ik niets mis.




  1. MySQL-permutatie

  2. Datums vergelijken die zijn opgeslagen als varchar

  3. Importeer meerdere CSV-bestanden in mysql

  4. Standaard tijdzone instellen op MySql Server via PhPMyAdmin