Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Peringkat berdasarkan dua kolom

Saya pikir kueri berikut akan mendapatkan hasil yang Anda butuhkan. Pertama, Anda harus menghitung peringkat dalam subquery. Saya pikir itu jauh lebih sederhana daripada pendekatan Anda, Anda hanya perlu mengurutkan hasil Anda dengan menang dan diff dalam urutan menurun (misalkan bidangnya adalah angka). Kemudian Anda tinggal memilih semua hasil dan ubah pesanan ke deskripsi pemain.

 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

Semoga saya tidak melewatkan apa pun.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mempelajari MySQL, kode sumber SQLite untuk mempelajari implementasi RDBMS

  2. Mengubah kueri SQL dari satu kondisi menjadi beberapa

  3. MySQL Bagaimana Anda INSERT INTO tabel dengan subquery SELECT mengembalikan beberapa baris?

  4. COCOKKAN LAGI dengan beberapa kolom di MySQL

  5. Lisensi MySQL dan GPL