Vấn đề:
Bạn muốn tìm hàng nào lưu trữ giá trị số lớn nhất trong một cột nhất định.
Ví dụ:
Cơ sở dữ liệu của chúng tôi có một bảng tên là student
với dữ liệu trong các cột sau:id
, first_name
, last_name
và grade
.
id | first_name | last_name | lớp |
---|---|---|---|
1 | Lisa | Jackson | 3 |
2 | Gary | Larry | 5 |
3 | Tom | Michelin | 2 |
4 | Martin | Barker | 2 |
5 | Ellie | Đen | 5 |
6 | Mary | Simpson | 4 |
Hãy tìm những sinh viên có điểm cao nhất.
Giải pháp:
SELECT id, first_name, last_name, grade FROM student WHERE grade = (SELECT MAX(grade) FROM student);
Đây là kết quả:
id | first_name | last_name | lớp |
---|---|---|---|
2 | Gary | Larry | 5 |
5 | Ellie | Đen | 5 |
Thảo luận:
Để tìm giá trị lớn nhất của một cột, hãy sử dụng MAX()
chức năng tổng hợp; nó cần một tên cột hoặc một biểu thức để tìm giá trị lớn nhất. Trong ví dụ của chúng tôi, truy vấn con trả về số cao nhất trong lớp cột (truy vấn con:SELECT MAX(grade) FROM student
). Truy vấn chính hiển thị id, họ và tên, và cấp của họ. Để chỉ hiển thị các hàng có giá trị lớn nhất trong số tất cả các giá trị trong cột (ví dụ:SELECT MAX(grade) FROM student
), sử dụng WHERE với một truy vấn con. Trong WHERE, đặt tên của cột có giá trị có thể so sánh với giá trị được trả về bởi hàm tổng hợp trong truy vấn con (trong ví dụ của chúng tôi:WHERE grade = (SELECT MAX(grade) FROM student)
).