Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

मल्टी-इवेंट टूर्नामेंट स्टैंडिंग

आप उसी Event में उच्च स्कोर वाले मानों में सेल्फ़-जॉइन का उपयोग करके MySQL में रैंकिंग फ़ंक्शन का अनुकरण कर सकते हैं , और फिर प्रत्येक प्रतिभागी के लिए उच्च स्कोर की संख्या की गणना करना:

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

आउटपुट:

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

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. मॉड्यूल नॉटफाउंड त्रुटि:'mysql' नाम का कोई मॉड्यूल नहीं

  2. SQL परिणामों को हैस-मैनी-थ्रू संबंध में कैसे फ़िल्टर करें

  3. mysql संग्रहीत फ़ंक्शन पैरामीटर

  4. MySql में चर के माध्यम से AUTO_INCREMENT मान सेट करें

  5. Bind_param गैर-वस्तु त्रुटि w/mysqli