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.