1. Giới thiệu
Trong MySQL, các hàm MIN() và MAX() được sử dụng để tìm giá trị nhỏ nhất và giá trị lớn nhất trong một tập hợp dữ liệu cụ thể. Đây là những hàm tổng hợp rất hữu ích khi bạn cần phân tích dữ liệu, tìm ra giá trị cực đại hoặc cực tiểu từ các cột số hoặc chuỗi trong bảng.
Bài viết này sẽ cung cấp chi tiết cách sử dụng các hàm MIN() và MAX() trong MySQL kèm theo các ví dụ thực tế để giúp bạn hiểu rõ hơn về cách áp dụng chúng trong các truy vấn MySQL.
2. SQL MIN() là gì?
Hàm MIN() trong SQL trả về giá trị nhỏ nhất từ một tập hợp giá trị trong một cột. Hàm này thường được sử dụng cho các cột chứa dữ liệu kiểu số, ngày tháng hoặc chuỗi.
Cú pháp tổng quát của SQL MIN():
SELECT MIN(column_name)
FROM table_name
WHERE condition;column_name: Cột mà bạn muốn tìm giá trị nhỏ nhất.table_name: Tên của bảng chứa dữ liệu.condition: Điều kiện lọc bản ghi (tùy chọn).
3. SQL MAX() là gì?
Hàm MAX() trong SQL trả về giá trị lớn nhất từ một tập hợp giá trị trong một cột. Tương tự như hàm MIN(), hàm MAX() cũng được áp dụng cho các cột chứa dữ liệu kiểu số, ngày tháng hoặc chuỗi.
Cú pháp tổng quát của SQL MAX():
SELECT MAX(column_name)
FROM table_name
WHERE condition;column_name: Cột mà bạn muốn tìm giá trị lớn nhất.table_name: Tên của bảng chứa dữ liệu.condition: Điều kiện lọc bản ghi (tùy chọn).
4. Cách sử dụng SQL MIN() và MAX()
a. Sử dụng SQL MIN() để tìm giá trị nhỏ nhất
Bạn có thể sử dụng hàm MIN() để tìm giá trị nhỏ nhất trong một cột cụ thể.
Ví dụ 1: Tìm lương nhỏ nhất của nhân viên
SELECT MIN(salary) AS min_salary
FROM employees;Kết quả sẽ trả về mức lương nhỏ nhất từ bảng employees.
b. Sử dụng SQL MAX() để tìm giá trị lớn nhất
Tương tự, bạn có thể sử dụng hàm MAX() để tìm giá trị lớn nhất trong một cột.
Ví dụ 2: Tìm lương lớn nhất của nhân viên
SELECT MAX(salary) AS max_salary
FROM employees;Kết quả sẽ trả về mức lương lớn nhất từ bảng employees.
c. Sử dụng SQL MIN() và MAX() với điều kiện WHERE
Bạn có thể kết hợp các hàm MIN() và MAX() với điều kiện WHERE để tìm giá trị nhỏ nhất hoặc lớn nhất trong một tập hợp con của dữ liệu.
Ví dụ 3: Tìm lương nhỏ nhất của nhân viên trong phòng ban "Sales"
SELECT MIN(salary) AS min_salary
FROM employees
WHERE department = 'Sales';Câu lệnh này sẽ trả về mức lương nhỏ nhất của các nhân viên thuộc phòng ban "Sales".
d. Sử dụng SQL MIN() và MAX() cho dữ liệu kiểu ngày tháng
Bạn có thể sử dụng MIN() và MAX() với dữ liệu kiểu ngày tháng để tìm ra ngày sớm nhất hoặc muộn nhất.
Ví dụ 4: Tìm ngày đặt hàng sớm nhất và muộn nhất trong bảng orders
SELECT MIN(order_date) AS earliest_order, MAX(order_date) AS latest_order
FROM orders;Kết quả sẽ trả về ngày đặt hàng sớm nhất và ngày đặt hàng muộn nhất trong bảng orders.
e. Sử dụng SQL MIN() và MAX() với nhóm dữ liệu (GROUP BY)
Khi cần tìm giá trị nhỏ nhất hoặc lớn nhất cho từng nhóm dữ liệu, bạn có thể kết hợp MIN() và MAX() với câu lệnh GROUP BY.
Ví dụ 5: Tìm lương nhỏ nhất và lớn nhất của mỗi phòng ban
SELECT department, MIN(salary) AS min_salary, MAX(salary) AS max_salary
FROM employees
GROUP BY department;Câu lệnh này sẽ trả về mức lương nhỏ nhất và lớn nhất của từng phòng ban trong bảng employees.
5. Các ví dụ về MySQL MIN() và MAX()
Ví dụ 1: Tìm giá sản phẩm rẻ nhất trong bảng products
SELECT MIN(price) AS cheapest_price
FROM products;Ví dụ 2: Tìm ngày sinh nhật muộn nhất của nhân viên
SELECT MAX(birth_date) AS latest_birth_date
FROM employees;Ví dụ 3: Tìm sản phẩm có giá cao nhất trong danh mục "Electronics"
SELECT MAX(price) AS highest_price
FROM products
WHERE category = 'Electronics';Ví dụ 4: Tìm ngày đặt hàng sớm nhất và muộn nhất của khách hàng có customer_id là 101
SELECT MIN(order_date) AS earliest_order, MAX(order_date) AS latest_order
FROM orders
WHERE customer_id = 101;Ví dụ 5: Tìm mức lương nhỏ nhất và lớn nhất của nhân viên trong mỗi phòng ban
SELECT department, MIN(salary) AS min_salary, MAX(salary) AS max_salary
FROM employees
GROUP BY department;6. Một số lưu ý khi sử dụng SQL MIN() và MAX()
a. Kết hợp MIN() và MAX() với các hàm khác
Bạn có thể kết hợp MIN() và MAX() với các hàm tổng hợp khác như COUNT(), AVG(), để phân tích dữ liệu sâu hơn.
Ví dụ: Tìm lương nhỏ nhất, lớn nhất, và trung bình của nhân viên
SELECT MIN(salary) AS min_salary, MAX(salary) AS max_salary, AVG(salary) AS avg_salary
FROM employees;b. Xử lý giá trị NULL
Hàm MIN() và MAX() sẽ bỏ qua các giá trị NULL trong cột mà chúng được áp dụng. Điều này có nghĩa là nếu một cột có giá trị NULL, nó sẽ không được tính toán trong kết quả.
c. Tối ưu hóa hiệu suất
Khi sử dụng MIN() và MAX() trên các bảng dữ liệu lớn, hãy cân nhắc tạo chỉ mục (index) cho cột mà bạn đang tìm giá trị nhỏ nhất hoặc lớn nhất. Điều này sẽ cải thiện tốc độ truy vấn.
Kết luận
Các hàm MIN() và MAX() trong SQL là những công cụ mạnh mẽ giúp bạn tìm ra giá trị nhỏ nhất và lớn nhất từ dữ liệu. Bằng cách sử dụng các hàm này, bạn có thể nhanh chóng xác định các giá trị cực trị, hỗ trợ cho việc phân tích và ra quyết định từ dữ liệu. Chúng cũng rất linh hoạt khi kết hợp với các câu lệnh khác như GROUP BY, WHERE, và các kiểu dữ liệu như số, chuỗi, ngày tháng.
Hãy thử áp dụng các kiến thức này trong các bài tập và dự án thực tế trên CodeTutHub để hiểu rõ hơn về cách làm việc với các hàm tổng hợp trong SQL!








