Max trong Sql

Hàm Max trong Sql dùng để đưa ra giá trị lớn nhất của cột điều kiện. Đây là một trong các hàm căn bản của SQL, bài viết này SmartData sẽ hướng dẫn các bạn cách cú pháp và một số ví dụ thực tế với hàm này nhé.

Hàm Max trong sql có cú pháp khá tương đồng trong các hệ quản trị cơ sở dữ liệu nổi tiếng hiện nay như: Mysql, Oracle, SQL Server.

Cú pháp

MAX(column_name)

Như bạn thấy, hàm này chỉ yêu cầu một đối số: tên cột.

Dữ liệu trả về sẽ là giá trị lớn nhất của cột truyền vào

Hãy cùng đi qua các ví dụ dưới đây để hiểu hơn về hàm MAX. Ta sẽ sử dụng bảng USERS dưới đây làm bảng dữ liệu xuyến suốt các ví dụ

+----+----------+-----------+-----------+ | ID | NAME | SALARY | MONTH | +----+----------+-----------+-----------+ | 1 | kien | 1000 | 1 | | 2 | ngoc | 2000 | 1 | | 3 | nghia | 3000 | 1 | | 4 | trang | 1000 | 2 | | 5 | ngoc | 1000 | 2 | +----+----------+-----------+-----------+

Ví dụ 1: Sử dụng hàm Max trong SQL với 1 cột

Các hàm tổng hợp như MAX() có thể được sử dụng như một cột duy nhất trong truy vấn SELECT. Ví dụ:

SELECT MAX(SALARY) FROM USERS;

Đây là kết quả:

+--------+ | MAX | +--------+ | 3000 | +--------+

Sau từ khóa SELECT, chúng tôi đặt MAX() và tên cột (trong trường hợp này là SALARY). Tiếp theo là từ khóa FROM và tên bảng. Kết quả là giá trị nhỏ nhất trong cột giá, là 3.

Xem thêm bài viết tìm tổng các giá trị trong cột tại đây.

Ví dụ 2: Sử dụng hàm MAX trong SQL với GROUP BY

Cách sử dụng nâng cao hơn của các hàm MAX() là sử dụng chúng cùng với GROUP BY.

SELECT NAME. MAX(SALARY) as MAX_SALARY FROM USERS GROUP BY NAME;

Dữ liệu trả về sẽ như sau:

+--------+---------------+ | NAME | MAX_SALARY | +--------+---------------+ | kien | 1000 | | nghia | 3000 | | ngoc | 2000 | | trang | 1000 | +--------+---------------+

Đầu tiên là từ khóa SELECT với tên cột(NAME), sau đó là hàm MAX() với giá cột làm đối số. Sau đó, chúng ta có MAX_SALARY, bí danh của cột mới được tạo bởi MAX().

Tiếp theo là từ khóa FROM và tên bảng. Ở cuối, chúng ta có mệnh đề GROUP BY với cột NAME. Điều này xác định các nhóm (tức là những cá nhân được nhóm theo tên). Đối với mỗi nhóm, chúng ta nhận được giá trị lớn nhất – trong trường hợp này là giá cao nhất trong số các tháng lương cao nhất mà họ được nhận.

Ví dụ 3: Dùng MAX trong SQL với mệnh đề HAVING

Một cách khác để sử dụng MAX() là lọc các hàng theo giá trị được trả về bởi hàm này – tức là trong mệnh đề HAVING.

Hãy cùng xem câu truy vấn sau đây:

SELECT NAME, MAX(SALARY) as MAX_SALARY FROM USERS GROUP BY NAME HAVING MAX(SALARY) > 2000;

Và kết quả trả về như sau:

+--------+---------------+ | NAME | MAX_SALARY | +--------+---------------+ | nghia | 3000 | +--------+---------------+

Trong câu SELECT phía trên, chúng ta có cột NAME. tiếp theo là hàm MAX() với SALARY là đối số. Đối với mỗi NAME nhận được, chúng ta sẽ giá trị SALARY lớn nhất trong các tháng mà người đó nhận được. Sau FROM là tên bảng USERS đi kèm với mệnh đề GROUP BY với cột NAME.

Cuối truy vấn là mệnh đề HAVING với hàm MAX(). Đoạn này sẽ cho phép tìm thấy giá trị MAX kia đồng thời thỏa mã điều kiện lớn hơn 2000.

Tạm kết

Như vậy SmartData đã cùng các bạn đi qua 3 ví dụ khá quen thuộc khi sử dụng cùng với hàm MAX trong sql. Hi vọng bài viết này phần nào mang lại lợi tích cho các bạn trong công việc.