MySQL HAVING

MySQL HAVING - Giới thiệu và Ví dụ

Trong ngôn ngữ lập trình MySQL, câu lệnh HAVING được sử dụng để lọc các kết quả của câu truy vấn sau khi đã thực hiện việc nhóm (GROUP BY). Điều này có nghĩa là HAVING cho phép bạn áp dụng các điều kiện trên các nhóm dữ liệu thay vì từng dòng dữ liệu riêng lẻ.

Định nghĩa HAVING

Thông thường, câu lệnh WHERE được sử dụng để lọc dữ liệu trước khi nhóm, trong khi HAVING sử dụng để lọc dữ liệu sau khi đã nhóm. Đây là công cụ hữu ích khi bạn muốn áp dụng các điều kiện cho các phép toán tổng hợp như SUM(), AVG(), COUNT(),...

Cú pháp

SELECT column1, column2, aggregate_function(column)
FROM table
WHERE condition
GROUP BY column1, column2, ...
HAVING aggregate_function(column) condition;

Ví dụ về HAVING

Ví dụ 1: Tính tổng doanh thu theo từng sản phẩm và lọc sản phẩm có tổng doanh thu lớn hơn 1000

SELECT product_name, SUM(revenue) AS total_revenue
FROM sales
GROUP BY product_name
HAVING SUM(revenue) > 1000;

Ví dụ 2: Đếm số lượng đơn hàng của từng khách hàng và chỉ hiện thị các khách hàng đã đặt ít nhất 5 đơn hàng

SELECT customer_id, COUNT(order_id) AS order_count
FROM orders
GROUP BY customer_id
HAVING COUNT(order_id) >= 5;

Ví dụ 3: Tính trung bình điểm của từng lớp học và lọc những lớp có điểm trung bình lớn hơn 75

SELECT class_id, AVG(score) AS average_score
FROM grades
GROUP BY class_id
HAVING AVG(score) > 75;

Kết luận

Câu lệnh HAVING trong MySQL là một công cụ mạnh mẽ giúp bạn có thể thực hiện các phép toán tổng hợp và lọc kết quả một cách hiệu quả và linh hoạt. Việc hiểu và sử dụng đúng HAVING sẽ giúp bạn tạo ra các truy vấn phức tạp và hữu ích trong quản lý cơ sở dữ liệu của mình.