Để lấy các giá trị lớn nhất (top N) trong MySQL, bạn kết hợp ORDER BY ... DESC với mệnh đề LIMIT.
Ví dụ minh họa
Tạo bảng chứa số liệu:
mysql> create table DemoTable (
Amount int
);
Chèn dữ liệu:
mysql> insert into DemoTable values(986); mysql> insert into DemoTable values(1010); mysql> insert into DemoTable values(769); mysql> insert into DemoTable values(989); mysql> insert into DemoTable values(999);
Hiển thị tất cả:
mysql> select * from DemoTable;
Kết quả:
+--------+ | Amount | +--------+ | 986 | | 1010 | | 769 | | 989 | | 999 | +--------+
Truy vấn lấy top 2 giá trị lớn nhất
mysql> select * from DemoTable order by Amount DESC LIMIT 2;
Kết quả:
+--------+ | Amount | +--------+ | 1010 | | 999 | +--------+
Giải thích:
ORDER BY Amount DESC: Sắp xếp giảm dần (lớn đến nhỏ)LIMIT 2: Chỉ lấy 2 bản ghi đầu tiên sau khi sắp xếp
Kỹ thuật này áp dụng rộng rãi cho báo cáo top bán hàng, điểm số cao nhất, v.v. Nếu cần top 3, 5, 10... chỉ cần thay đổi số sau LIMIT.