Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ranking oparty na dwóch kolumnach

Myślę, że poniższe zapytanie przyniesie pożądany rezultat. Najpierw musisz obliczyć pozycję w podzapytaniu. Myślę, że jest to o wiele prostsze niż twoje podejście, wystarczy posortować wyniki według wygranych i różnic w kolejności malejącej (zakładając, że pola są liczbami). Następnie po prostu zaznaczasz wszystkie wyniki i zmieniasz kolejność do opisu gracza.

 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

Mam nadzieję, że niczego mi nie brakuje.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Opóźnienie wykonania wyzwalacza/procedury MySQL

  2. Jak zoptymalizować tabele MySQL/MariaDB

  3. Błąd MySQL::'Odmowa dostępu dla użytkownika 'root'@'localhost'

  4. Wyszukiwanie pełnotekstowe w mysql za pomocą 3-literowego słowa

  5. Zapytanie Mysql do dynamicznej konwersji wierszy na kolumny na podstawie dwóch kolumn