Làm Chủ MySQL: Hàm Tổng Hợp, Gom Nhóm Dữ Liệu Hiệu Quả
Chào mừng bạn đến với bài viết số 6 trong loạt bài về MySQL & MariaDB! Trong bài này, chúng ta sẽ khám phá các hàm tổng hợp mạnh mẽ. Chúng ta cũng sẽ tìm hiểu cách gom nhóm dữ liệu và lọc chúng một cách hiệu quả.
Các hàm này cho phép bạn thực hiện các phép tính thống kê trên dữ liệu. Điều này rất hữu ích cho việc phân tích và báo cáo.
Các Hàm Tổng Hợp Cơ Bản
Các hàm tổng hợp cho phép bạn tính toán trên nhiều hàng dữ liệu. Chúng trả về một giá trị duy nhất dựa trên các hàng đó. Chúng ta sẽ xem xét các hàm quan trọng nhất:
COUNT
Hàm COUNT() dùng để đếm số lượng hàng trong một bảng hoặc một nhóm. Bạn có thể sử dụng COUNT(*) để đếm tất cả các hàng. Hoặc bạn có thể sử dụng COUNT(column_name) để đếm số lượng giá trị không NULL trong một cột.
Ví dụ:
SELECT COUNT(*) FROM customers;
Câu lệnh này sẽ trả về tổng số khách hàng trong bảng customers.
SUM
Hàm SUM() dùng để tính tổng các giá trị trong một cột. Cột phải có kiểu dữ liệu số. Hàm này bỏ qua các giá trị NULL.
Ví dụ:
SELECT SUM(order_total) FROM orders;
Câu lệnh này sẽ trả về tổng giá trị của tất cả các đơn hàng trong bảng orders.
AVG
Hàm AVG() dùng để tính giá trị trung bình của các giá trị trong một cột. Cột phải có kiểu dữ liệu số. Hàm này cũng bỏ qua các giá trị NULL.
Ví dụ:
SELECT AVG(product_price) FROM products;
Câu lệnh này sẽ trả về giá trung bình của tất cả các sản phẩm trong bảng products.
MIN
Hàm MIN() dùng để tìm giá trị nhỏ nhất trong một cột. Nó có thể được sử dụng với các kiểu dữ liệu số, chuỗi hoặc ngày tháng.
Ví dụ:
SELECT MIN(order_date) FROM orders;
Câu lệnh này sẽ trả về ngày đặt hàng sớm nhất trong bảng orders.
MAX
Hàm MAX() dùng để tìm giá trị lớn nhất trong một cột. Nó cũng có thể được sử dụng với các kiểu dữ liệu số, chuỗi hoặc ngày tháng.
Ví dụ:
SELECT MAX(product_price) FROM products;
Câu lệnh này sẽ trả về giá cao nhất của tất cả các sản phẩm trong bảng products.
Gom Nhóm Dữ Liệu với GROUP BY
Mệnh đề GROUP BY dùng để gom nhóm các hàng có cùng giá trị trong một hoặc nhiều cột. Điều này cho phép bạn áp dụng các hàm tổng hợp cho từng nhóm.
Ví dụ:
SELECT category, COUNT(*) FROM products GROUP BY category;
Câu lệnh này sẽ trả về số lượng sản phẩm trong mỗi danh mục.
Bạn có thể gom nhóm theo nhiều cột. Thứ tự của các cột trong mệnh đề GROUP BY quan trọng.
Ví dụ:
SELECT category, supplier, COUNT(*) FROM products GROUP BY category, supplier;
Câu lệnh này sẽ trả về số lượng sản phẩm trong mỗi danh mục và nhà cung cấp.
Lọc Nhóm với HAVING
Mệnh đề HAVING dùng để lọc các nhóm được tạo bởi mệnh đề GROUP BY. Nó tương tự như mệnh đề WHERE, nhưng nó hoạt động trên các nhóm thay vì các hàng riêng lẻ.
Ví dụ:
SELECT category, COUNT(*) FROM products GROUP BY category HAVING COUNT(*) > 10;
Câu lệnh này sẽ trả về các danh mục có nhiều hơn 10 sản phẩm.
Bạn có thể sử dụng nhiều điều kiện trong mệnh đề HAVING bằng cách sử dụng các toán tử logic như AND và OR.
Ví dụ:
SELECT category, AVG(product_price) FROM products GROUP BY category HAVING AVG(product_price) > 50 AND COUNT(*) > 5;
Câu lệnh này sẽ trả về các danh mục có giá trung bình lớn hơn 50 và có nhiều hơn 5 sản phẩm.
Ví dụ Tổng Hợp
Giả sử bạn có một bảng sales với các cột product_id, sale_date, quantity và price.
Bạn có thể sử dụng các hàm tổng hợp và GROUP BY để phân tích dữ liệu bán hàng.
Ví dụ, để tính tổng doanh thu cho mỗi sản phẩm:
SELECT product_id, SUM(quantity * price) AS total_revenue FROM sales GROUP BY product_id;
Để tìm sản phẩm có tổng doanh thu lớn nhất:
SELECT product_id, SUM(quantity * price) AS total_revenue FROM sales GROUP BY product_id ORDER BY total_revenue DESC LIMIT 1;
Để tìm các sản phẩm có tổng số lượng bán ra lớn hơn 100:
SELECT product_id, SUM(quantity) AS total_quantity FROM sales GROUP BY product_id HAVING SUM(quantity) > 100;
Những ví dụ trên cho thấy sức mạnh của các hàm tổng hợp, GROUP BY và HAVING trong việc phân tích dữ liệu.
Bạn có thể kết hợp chúng với các kỹ thuật khác để tạo ra các truy vấn phức tạp và hữu ích.
Kết Luận
Trong bài viết này, chúng ta đã tìm hiểu về các hàm tổng hợp COUNT, SUM, AVG, MIN và MAX. Chúng ta cũng đã học cách sử dụng GROUP BY để gom nhóm dữ liệu và HAVING để lọc các nhóm đó. Hãy thực hành các kỹ thuật này để nâng cao khả năng truy vấn và phân tích dữ liệu của bạn. Chúc bạn thành công trên con đường làm chủ MySQL!
0 Bình luận
Vui lòng đăng nhập để gửi bình luận.