Truy vấn này sẽ nhận được những gì bạn cần:
SELECT
player_id, game_id, score
FROM
(
SELECT game_id,MAX(score) AS MaxScore
FROM games
GROUP BY game_id
) AS Winners
JOIN games
ON (games.game_id = Winners.game_id AND games.score = Winners.MaxScore)
Nó giả định rằng một trận hòa là một chiến thắng cho cả hai người chơi.
Nếu bạn chỉ muốn lấy người chơi và số trận thắng của họ, bạn có thể sử dụng truy vấn sau:
SELECT
player_id, COUNT(*) AS wins
FROM
(
SELECT game_id,MAX(score) AS MaxScore
FROM games
GROUP BY game_id
) AS Winners
JOIN games
ON (games.game_id = Winners.game_id AND games.score = Winners.MaxScore)
WHERE player_id = {player_id}
GROUP BY player_id
Chỉ cần thay thế {player_id}
với trình phát bạn đang tìm và wins
là số trận thắng hoặc số trận hòa của họ.