Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhận giá trị tối đa và cột tương ứng

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.

SQLFiddle

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ọ.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn dữ liệu vào bảng MySQL từ tập lệnh Python

  2. Làm thế nào để thay đổi mysql thành mysqli?

  3. Làm cách nào để thay thế chuỗi bằng một chuỗi khác và giữ nguyên trong php và mysql?

  4. Cấu hình chỉ mục Mysql

  5. PDO + MySQL và mã hóa UTF-8 bị hỏng