Pilih baris pangkalan data yang betul untuk mencapai hasil terkumpul
P粉270842688
P粉270842688 2024-04-05 10:37:31
0
1
542

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粉270842688
P粉270842688

membalas semua(1)
P粉964682904

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan