Я создаю приложение, где пользователи делают тренировки.Они передают свои результаты через приложение, и эти результаты сохраняются в базе данных SQL Server.Результаты сохраняются таким образом в таблице SQL Server:
Я хочу написать запрос для создания рейтинга, основанного на лучшем балле каждогопользователь.Это то, что я до сих пор:
SELECT id,
workout_id,
level_id,
a.user_id,
total_time,
score,
datetime_added
FROM nodefit_rankings_fitness as a INNER JOIN
(
SELECT user_id,
MAX(score) AS MAXSCORE
FROM nodefit_rankings_fitness
GROUP BY user_id
) AS lookup
ON lookup.user_id = a.user_id
AND
lookup.MAXSCORE = a.score
ORDER BY score DESC,
datetime_added DESC
Это генерирует этот рейтинг:
Проблема в том, что если пользовательдостиг одного и того же максимального балла несколько раз, он будет появляться несколько раз в рейтинге.Запрос должен быть скорректирован таким образом, чтобы, когда пользователь несколько раз получал один и тот же максимальный балл, в рейтинге отображался только результат последней попытки (на основе столбца datetime_added
).
К сожалению, яне могу найти решение сам.Помощь, безусловно, ценится.