Thứ Tư, 27 Tháng Mười Một 2024
Trang chủPHP & MysqlMySQLĐặt điều kiện sau mệnh đề GROUP BY trong MySQL với HAVING

Đặt điều kiện sau mệnh đề GROUP BY trong MySQL với HAVING

Đặt điều kiện truy vấn dữ liệu sau mệnh đề “GROUP BY” trong câu truy vấn SQL cho phép bạn lọc dữ liệu đã nhóm dựa trên các tiêu chí cụ thể. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng điều kiện sau lệnh “GROUP BY” để truy vấn dữ liệu một cách hiệu quả.

DANH SÁCH BÀI VIẾT
Mệnh đề GROUP BY trong MySQL - Mệnh đề nhóm dữ liệu bản ghi
Tìm hiểu Mệnh đề WHERE IN, WHERE NOT IN trong MySQL
Đặt điều kiện sau mệnh đề GROUP BY trong MySQL với HAVING
Câu lệnh TRUNCATE TABLE trong MySQL - Loại bỏ tất cả bản ghi
Lệnh ALTER TABLE trong MySQL...Lệnh sửa đổi cấu trúc bảng

Đặt điều kiện truy vấn sau GROUP BY với mệnh đề HAVING

Lệnh GROUP BY được sử dụng để nhóm dữ liệu dựa trên một hoặc nhiều cột trong câu truy vấn SQL. Sau đó, bạn có thể sử dụng HAVING để đặt điều kiện sau lệnh “GROUP BY” để lọc các kết quả nhóm theo tiêu chí cụ thể. Cú pháp của câu truy vấn SQL sẽ như sau:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
GROUP BY column1, column2
HAVING condition;

Trong đó:

  • column1, column2,… là các cột bạn muốn nhóm theo.
  • aggregate_function là các hàm tổng hợp như COUNT, SUM, AVG, MAX, MIN, v.v. được áp dụng lên cột column3 (được nhóm).
  • table_name là tên của bảng chứa dữ liệu cần truy vấn.
  • condition là điều kiện để lọc các kết quả nhóm.

Dưới đây là một số ví dụ cụ thể:

Ví dụ 1: Trong bảng “Orders“, chúng ta muốn nhóm các đơn hàng theo CustomerID (Tên cột chỉ định) và chỉ hiển thị các nhóm có tổng giá trị đơn hàng lớn hơn 1000.

SELECT CustomerID, SUM(OrderAmount) AS TotalOrderAmount
FROM Orders
GROUP BY CustomerID
HAVING SUM(OrderAmount) > 1000;

Ví dụ 2: Trong bảng “Products“, chúng ta muốn nhóm các sản phẩm theo “Category” và chỉ hiển thị các nhóm có số lượng sản phẩm lớn hơn 50.

>>XEM THÊM: Khoá ngoại – Hướng dẫn liên kết bảng MySQL trong phpmyadmin

SELECT Category, COUNT(*) AS ProductCount
FROM Products
GROUP BY Category
HAVING COUNT(*) > 50;

Ví dụ 3: Trong bảng “Employees“, chúng ta muốn nhóm các nhân viên theo “Department” và chỉ hiển thị các nhóm có mức lương trung bình cao hơn 50000.

SELECT Department, AVG(Salary) AS AverageSalary
FROM Employees
GROUP BY Department
HAVING AVG(Salary) > 50000;

Như vậy, điều kiện sau lệnh “GROUP BY” được xác định bằng cách sử dụng “HAVING” để lọc các kết quả nhóm theo tiêu chí cụ thể. Lưu ý rằng HAVING sử dụng các hàm tổng hợp (aggregate functions) để xác định các điều kiện của mình và bạn có thể sử dụng các toán tử so sánh thông thường như “=”, “>”, “<“, “>=”, “<=”, “<>” để so sánh các giá trị.

Ví dụ 4: Trong bảng “Students“, chúng ta muốn nhóm các học sinh theo “Grade” và chỉ hiển thị các nhóm có tỷ lệ điểm trung bình lớn hơn 8.

SELECT Grade, AVG(Mark) AS AverageMark
FROM Students
GROUP BY Grade
HAVING AVG(Mark) > 8;

Ví dụ 5: Trong bảng “Sales“, chúng ta muốn nhóm các bản ghi theo “ProductID” và chỉ hiển thị các nhóm có số lượng bán hàng lớn hơn 100 và tổng doanh thu cao hơn 5000.

>>XEM THÊM: Các hàm xử lý toán học trong MySQL – Học MySQL

SELECT ProductID, COUNT(*) AS TotalSales, SUM(Revenue) AS TotalRevenue
FROM Sales
GROUP BY ProductID
HAVING COUNT(*) > 100 AND SUM(Revenue) > 5000;

Khi sử dụng lệnh GROUP BY HAVING, bạn có thể linh hoạt lựa chọn các cột và điều kiện phù hợp với yêu cầu cụ thể của mình. Điều quan trọng là bạn cần hiểu rõ cấu trúc của dữ liệu và các hàm tổng hợp mà bạn muốn sử dụng để truy vấn dữ liệu một cách chính xác và hiệu quả.

Trên đây là một số ví dụ và hướng dẫn cơ bản để đặt điều kiện sau lệnh GROUP BY trong câu truy vấn SQL. Điều này cho phép bạn xử lý và hiển thị dữ liệu đã nhóm một cách tùy chỉnh và tiện lợi. Hãy thực hành nhiều hơn và tìm hiểu thêm về các tính năng khác của SQL để nâng cao khả năng truy vấn và phân tích dữ liệu của bạn.

Cảm ơn bạn đã đọc hết bài viết! CHúc bạn học tốt!

[XEM TẤT CẢ CÁC BÀI HƯỚNG DẪN MYSQL TẠI ĐÂY]

XEM THÊM
Hàm Max, Min trong MySQL – Tìm kiếm lớn nhất, bé nhất trong cột
Hàm SUM trong MYSQL – Tính tổng một cột (Hiểu trong 5 phút)
Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới
Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL
Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT
Toán tử so sánh trong MySQL – So sánh bằng, lớn hơn, nhỏ hơn
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?

Dịch vụ code thuê

TUICOCACH.COM NHẬN ĐẶT TEXTLINK, BANNER, GP
0
Giáo sư! có thể ném gạch bên dưới nhé!x