есть таблица в базе данных SQL, называемая Игроки: Игроки (ID, имя, возраст, пол, статистика) где ID - это первичный ключ.Как найти следующий SQL-запрос?
Теперь я хочу написать запрос, чтобы найти следующие результаты: Для каждого возраста найдите имя и возраст игрока (ов) с наибольшим счетом среди всех игроков этого возраста.
Я написал следующий запрос:
SELECT P.name, P.age
FROM Players P
WHERE P.score = (SELECT MAX(P2.score) FROM Players P2)
GROUP BY P.age, P.name
ORDER BY S.age
Однако результат вышеупомянутого запроса является списком игроков с наибольшим количеством очков среди всех игроков во всех возрастах, а не для каждого возраста.
Затем я изменил мой запрос к следующему:
SELECT P.name, P.age, MAX(P.score)
FROM Players P
GROUP BY P.age, P.name
ORDER BY P.age
Однако второй запрос я написал дает список игроков с каждым возрастом, но и для каждого возраста, есть не только игроки с самым высоким но и других игроков с более низкими баллами в этой возрастной группе.
Как исправить код логики/запроса?
Спасибо!
Я вижу, теперь он работает очень хорошо. Спасибо! – user118464