Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Classificação do torneio multi-evento


Você pode emular uma função de classificação no MySQL usando uma auto-junção para valores com uma pontuação mais alta no mesmo Event e, em seguida, contando o número de pontuações mais altas para cada participante:
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

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

Demonstração no dbfiddle