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

Klasemen turnamen multi-acara

Anda dapat meniru fungsi peringkat di MySQL menggunakan self-join ke nilai dengan skor lebih tinggi di Event yang sama , lalu menghitung jumlah skor yang lebih tinggi untuk setiap peserta:

SELECT s1.Name, s1.Event, s1.Score, COUNT(s2.Name)+1 AS Rank
FROM scores s1
LEFT JOIN scores s2 ON s2.Event = s1.Event AND s2.Score > s1.Score
WHERE s1.Name = 'Bob'
GROUP BY s1.Name, s1.Event, s1.Score
ORDER BY s1.Name, s1.Event

Keluaran:

Name    Event   Score   Rank
Bob     1       100     1
Bob     2       75      3
Bob     3       80      2

Demo di dbfiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendapatkan kesalahan Entity Framework saat menjalankan migrasi pada database MySQL. Penggunaan indeks spasial/teks lengkap/hash yang salah dan urutan indeks eksplisit

  2. persentil oleh COUNT(DISTINCT) dengan WHERE berkorelasi hanya berfungsi dengan tampilan (atau tanpa DISTINCT)

  3. Permintaan MySQL untuk menemukan ID di mana beberapa kondisi bertemu untuk satu kolom

  4. Contoh hubungan banyak-ke-banyak

  5. Ubah pagination mysqli menjadi pagination pernyataan yang disiapkan