Вы можете сделать это с помощью дополнительного выбора, как показано ниже:
SELECT GameID, GamerID, Score
FROM Gamers
WHERE Score = (
SELECT
MAX(scores.Score)
FROM Gamers AS scores
WHERE scores.GameID = Gamers.GameID
)
GROUP BY GameID
Проверено на:
CREATE TABLE Gamers (
GamerID int(11) NOT NULL,
GameID int(11) NOT NULL,
Score int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO Gamers (GamerID, GameID, Score) VALUES
(1, 1, 10),
(2, 1, 10),
(3, 1, 10),
(4, 1, 90),
(5, 2, 40),
(6, 2, 10),
(7, 3, 10),
(8, 3, 10);
Конечно, это не будет идеально в ситуациях, когда два игрокадобиться того же результата для данной игры.