sql >> Database >  >> RDS >> Mysql

Stand van toernooien voor meerdere evenementen

U kunt een rangschikkingsfunctie in MySQL emuleren met behulp van een self-join naar waarden met een hogere score in hetzelfde Event , en vervolgens het aantal hogere scores voor elke deelnemer te tellen:

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

Uitgang:

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

Demo op dbfiddle




  1. ORA-01618

  2. Wat is de beste manier om de bijbel in SQL op te slaan?

  3. MySql-trigger, update een andere tabel bij invoegen

  4. Controleer op overlappende datums in elke rij van een tabel Oracle SQL