Cách sử dụng mệnh đề HAVING của MySQL khi tổng lớn hơn ngưỡng

Cach Su Dung Menh De Having Cua Mysql Khi Tong Lon Hon Nguong



Khi làm việc với cơ sở dữ liệu MySQL, bạn sẽ thường gặp các trường hợp muốn lọc các giá trị. Mặc dù bạn có thể sử dụng mệnh đề WHERE nhưng không phải lúc nào mệnh đề này cũng hoạt động với mọi trường hợp. Mệnh đề HAVING được sử dụng khi bạn muốn thực hiện truy vấn bộ lọc bằng hàm tổng hợp và áp dụng các nhóm.

Mệnh đề HAVING dựa vào mệnh đề GROUP BY trong bộ lọc của nó và thực hiện truy vấn dựa trên điều kiện được cung cấp. Nó hạn chế bộ lọc dựa trên điều kiện và chỉ trả về các nhóm đã chọn nếu chúng đáp ứng điều kiện. Chúng tôi có các ví dụ về việc sử dụng mệnh đề HAVING của MySQL trong đó tổng vượt quá ngưỡng. Bằng cách đó, bạn sẽ nắm vững cách sử dụng nó ở cuối bài viết hôm nay.







Cách sử dụng mệnh đề HAVING trong MySQL khi tổng lớn hơn ngưỡng

Bạn áp dụng mệnh đề HAVING của MySQL với mệnh đề GROUP BY. Cú pháp của nó như sau:



CHỌN biểu thức1, .. biểu thức_n, tổng hợp_func (biểu thức) TỪ tên_bảng NHÓM THEO biểu thức HAVING <điều kiện>;

Bạn có thể sử dụng các hàm tổng hợp khác nhau bao gồm SUM(), COUNT(), MIN(), MAX() và AVG(). Lưu ý rằng bất kỳ biểu thức nào không được sử dụng với hàm tổng hợp phải được đề cập với mệnh đề GROUP BY.



Đối với điều kiện, nó được áp dụng cho các kết quả tổng hợp mà bạn chỉ định ngưỡng mà bạn muốn kiểm tra với điều kiện. Chẳng hạn, bạn có thể áp dụng hàm SUM() và xác minh xem biểu thức có đáp ứng ngưỡng 10 hay không. Chúng ta sẽ hiểu thêm về hàm này trong các ví dụ được cung cấp.





Để hiểu cách thức hoạt động của mệnh đề HAVING, hãy tạo một cơ sở dữ liệu mẫu mà chúng ta sẽ làm việc với. Chúng tôi đặt tên cho cơ sở dữ liệu của mình là “đăng ký”.



Chúng ta cũng hãy tạo một bảng có tên là 'workers' để chứa các cột và kiểu dữ liệu khác nhau của chúng ta. Ở đây, chúng tôi làm việc với dữ liệu của công nhân như tên, giờ, ngày làm việc, v.v.

Bằng cách kiểm tra mô tả bảng của chúng tôi, chúng tôi có thể xác nhận rằng tất cả các cột được tạo thành công.

Chúng tôi chèn các giá trị vào bảng của chúng tôi. Chúng tôi có những công nhân khác nhau đang làm việc vào những giờ và ngày khác nhau. Sử dụng dữ liệu này, chúng ta có thể áp dụng mệnh đề HAVING khi tổng vượt quá ngưỡng.

Đối với ví dụ đầu tiên của chúng tôi, hãy xem xét trường hợp chúng tôi muốn tìm những công nhân làm việc nhiều giờ nhất. Đối với mệnh đề HAVING, hãy đưa vào hàm tính tổng tính theo giờ. Trong mệnh đề GROUP BY, chúng tôi nhóm các hàng bằng cách sử dụng hàng tên để giúp phân loại công nhân có tổng số giờ lớn hơn ngưỡng.

Nếu chúng tôi có ngưỡng cho tổng số giờ là 7, chúng tôi thực hiện lệnh của mình như sau:

CHỌN tên, TỔNG (giờ) NHƯ tổng_giờ_mỗi_người TỪ NHÓM công nhân THEO tên CÓ tổng (giờ) > 7;

Bằng cách thực hiện lệnh, chúng tôi nhận được một đầu ra có chứa hai hàng vì chỉ có hai công nhân vượt quá ngưỡng được chỉ định trong mệnh đề HAVING.

Giả sử chúng ta muốn phân loại các phòng ban để xem những phòng ban nào có công nhân làm việc với số giờ lớn hơn ngưỡng 7 giờ. Chúng tôi chọn bộ phận, sau đó sử dụng hàm tổng hợp SUM với số giờ và nhóm các hàng bằng cách sử dụng biểu thức bộ phận.

Lệnh của chúng ta như sau:

CHỌN bộ phận, TỔNG (giờ) NHƯ tổng_giờ_mỗi_bộ phận TỪ công nhân NHÓM THEO bộ phận CÓ tổng (giờ) > 7;

Từ kết quả, chúng tôi có thể xác minh rằng chúng tôi đã quản lý để lọc các hàng để chỉ để lại những hàng có tổng số giờ lớn hơn ngưỡng của chúng tôi.

Tương tự, nếu chúng ta muốn lọc ngày làm việc có số công nhân làm việc cao nhất vượt quá ngưỡng 10 giờ, chúng ta chọn biểu thức ngày làm việc. Sau đó, chúng tôi sử dụng hàm SUM với số giờ và nhóm các hàng bằng cách sử dụng ngày làm việc.

Lệnh như sau:

CHỌN ngày làm việc, TỔNG (giờ) NHƯ số_giờ_làm việc cao nhất TỪ NHÓM công nhân THEO ngày làm việc CÓ tổng (giờ) > 10;

Sau khi thực hiện lệnh, kết quả cho thấy chỉ có một ngày làm việc có tổng số giờ vượt quá ngưỡng:

Phần kết luận

Mệnh đề HAVING của MySQL được sử dụng khi bạn muốn thực hiện truy vấn bộ lọc bằng hàm tổng hợp. Nó được kết hợp với mệnh đề GROUP BY để thực hiện một truy vấn cụ thể hơn. Bài đăng này trình bày chi tiết mọi thứ về mệnh đề HAVING của MySQL trong đó tổng lớn hơn ngưỡng. Với các ví dụ được cung cấp, bây giờ bạn đã hiểu cách làm việc với mệnh đề HAVING của MySQL.