sql >> Databasteknik >  >> RDS >> Mysql

Ställningar i flera evenemang

Du kan emulera en rankningsfunktion i MySQL med hjälp av en självanslutning till värden med högre poäng i samma Event , och sedan räkna antalet högre poäng för varje deltagare:

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

Utdata:

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

Demo på dbfiddle




  1. Jag kan inte köra utvalda poster från en tabell i databasen i google sql cloud med php

  2. Mysql-fråga kontrollera blob-kolumnen typ i where-satsen

  3. Hur man hämtar data från överordnad och underordnad tabell på basis av status där främmande nyckel har olika status för varje rad

  4. Hur kan vi återanvända det borttagna ID:t från någon MySQL-DB-tabell?