Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Dapatkan nilai Maks dan kolom yang sesuai

Kueri ini harus mendapatkan apa yang Anda butuhkan:

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)

Diasumsikan bahwa seri adalah kemenangan bagi kedua pemain.

SQLFiddle

Jika Anda hanya ingin mendapatkan pemain dan jumlah kemenangannya, Anda dapat menggunakan kueri ini:

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

Ganti saja {player_id} dengan pemain yang Anda cari dan wins adalah jumlah kemenangan atau seri mereka.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan Oracle JDeveloper Snippets dengan MySQL

  2. SELECT LAST_INSERT_ID() berfungsi di Direct MySQL Query tetapi tidak sebentar-sebentar PHP QUERY

  3. Bagaimana cara terhubung ke server MySQL di host lain?

  4. Pilih dari satu meja di mana tidak di meja lain

  5. Masalah Instalasi MYSQL