Get Max value and corresponding column

前端 未结 1 1172
温柔的废话
温柔的废话 2020-12-21 14:38

How can I get corresponding columns from a max query in mysql? I want find out how many wins a player has. I will find that out by doing a count of the number of games tha

1条回答
  •  一整个雨季
    2020-12-21 14:55

    This query should get what you need:

    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)
    

    It assumes that a tie is a win for both players.

    SQLFiddle

    If you want to get just the player and their number of wins, you can use this query:

    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
    

    Just replace {player_id} with the player you're looking for and wins is their number of wins or ties.

    0 讨论(0)
提交回复
热议问题