2

mysqlの最大クエリから対応する列を取得するにはどうすればよいですか? プレイヤーの勝利数を知りたいです。プレイヤーが勝ったゲームの数を数えることで、それを見つけます。これは、ゲームごとの最大値と結果の player_id を選択することによって行われます。ただし、対応する player_id を取得する方法がわかりません。

私は持っている

   id   |   game_id | player_id | score

    1   |     1     |     1     |   254
    2   |     1     |     2     |   194
    3   |     2     |     1     |   432
    4   |     2     |     2     |   298
4

1 に答える 1

4

このクエリは、必要なものを取得する必要があります。

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)

同点の場合は、両方のプレーヤーの勝利と見なされます。

SQLフィドル

プレイヤーとその勝利数だけを取得したい場合は、次のクエリを使用できます。

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

{player_id}探しているプレーヤーに置き換えるだけwinsで、勝利または引き分けの数です。

于 2013-03-14T20:02:44.583 に答える