1. Giới thiệu

Trong MySQL, các hàm MIN()MAX() được sử dụng để tìm giá trị nhỏ nhấtgiá 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()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():

shell
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():

shell
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

shell
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

shell
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()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"

shell
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()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

shell
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()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

shell
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()MAX()

Ví dụ 1: Tìm giá sản phẩm rẻ nhất trong bảng products

shell
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

shell
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"

shell
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_id101

shell
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

shell
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()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

shell
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()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()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()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!