Tạo bảng điểm người chơi
mysql> CREATE TABLE DemoTable1383 (
-> Id INT,
-> PlayerScore INT
-> );
Query OK, 0 rows affected (0.90 sec)
mysql> INSERT INTO DemoTable1383 VALUES
-> (200,78),(200,89),(200,89),(200,87),(203,97),(200,57);
Dữ liệu
mysql> SELECT * FROM DemoTable1383;
+------+-------------+
| Id | PlayerScore |
+------+-------------+
| 200 | 78 |
| 200 | 89 |
| 200 | 89 |
| 200 | 87 |
| 203 | 97 |
| 200 | 57 |
+------+-------------+
Truy vấn: MAX theo Id, sắp xếp giảm dần
mysql> SELECT Id, MAX(PlayerScore)
-> FROM DemoTable1383
-> GROUP BY Id
-> ORDER BY MAX(PlayerScore) DESC;
Kết quả: Top 2 Id có điểm cao nhất
+------+------------------+
| Id | MAX(PlayerScore) |
+------+------------------+
| 203 | 97 |
| 200 | 89 |
+------+------------------+
Lưu ý: Truy vấn này trả về điểm cao nhất mỗi Id, sau đó sắp xếp. Nếu cần top 2 điểm cao nhất tổng thể (không nhóm theo Id), dùng SELECT DISTINCT PlayerScore ... ORDER BY PlayerScore DESC LIMIT 2.