cari

Rumah  >  Soal Jawab  >  teks badan

Pilih baris pangkalan data yang betul untuk mencapai hasil terkumpul

Saya mahu memilih skor terbaik untuk setiap pengguna untuk permainan tertentu.

Pertanyaan semasa saya memilih skor, tarikh_simpan dan nama pengguna keputusan untuk skill_game dengan id 1.

SELECT MAX(score) as score, date_saved, users.username FROM results
INNER JOIN users_results ON results.id = users_results.result_id
INNER JOIN users ON users_results.user_id = users.id
WHERE skill_game_id = 1
GROUP BY user_id
ORDER BY score  DESC

Hasilnya adalah seperti berikut:

| score | username | date_saved |
---------------------------------
|    73 |     Mark | 2021-09-06 |
|    51 |     John | 2018-08-16 |
|    46 |     Ryan | 2020-02-20 |
|    43 |    Chris | 2019-08-27 |
|    40 |   Steven | 2020-07-04 |

Pada masa ini, tarikh_simpan tidak selalu betul, kerana keputusan 73 mata Mark sebenarnya disimpan pada 2021-11-03. Berikut adalah keputusan Mark:

| score | username | date_saved |
---------------------------------
|    73 |     Mark | 2021-11-03 |
|    35 |     Mark | 2021-10-29 |
|    24 |     Mark | 2021-09-06 |

Pernyataan GROUP BY memilih baris pertama dalam kumpulan, dan MAX(skor) memilih markah tertinggi dalam kumpulan. Saya mahu dapat memilih skor tertinggi dan memilih tarikh yang sepadan, tetapi saya tidak pasti bagaimana untuk mencapai ini dalam MySQL.

P粉270842688P粉270842688230 hari yang lalu504

membalas semua(1)saya akan balas

  • P粉964682904

    P粉9646829042024-04-06 00:37:46

    Anda juga boleh melakukannya dengan memilih tarikh_simpan terbesar

    SELECT MAX(score) as score, MAX(date_saved), users.username FROM results
    INNER JOIN users_results ON results.id = users_results.result_id
    INNER JOIN users ON users_results.user_id = users.id
    WHERE skill_game_id = 1
    GROUP BY user_id
    ORDER BY score  DESC

    balas
    0
  • Batalbalas