Hàm tổng hợp (aggregate functions) trong MySQL là các hàm đặc biệt được sử dụng để thực hiện các phép toán trên nhiều giá trị và trả về một kết quả duy nhất. Các hàm này rất hữu ích trong việc phân tích dữ liệu, tính toán tổng số, trung bình, số lượng, và nhiều thông tin thống kê khác từ tập dữ liệu.
Dưới đây là hướng dẫn chi tiết về các hàm tổng hợp phổ biến trong MySQL, kèm theo ví dụ minh họa cụ thể:
1. Hàm COUNT()
COUNT()
đếm số lượng các giá trị không NULL trong một cột hoặc số lượng các hàng trong một tập hợp.
Cú pháp:
COUNT([DISTINCT] column_name)
Ví dụ:
SELECT COUNT(*) AS total_rows FROM employees;
-- Kết quả: Tổng số hàng trong bảng employees
SELECT COUNT(DISTINCT department) AS unique_departments FROM employees;
-- Kết quả: Số lượng phòng ban duy nhất trong bảng employees
Giải thích:
COUNT(*)
đếm tất cả các hàng trong bảng hoặc kết quả truy vấn.
COUNT(DISTINCT column_name)
đếm số lượng giá trị duy nhất trong một cột.
2. Hàm SUM()
SUM()
tính tổng của các giá trị trong một cột.
Cú pháp:
Ví dụ:
SELECT SUM(salary) AS total_salaries FROM employees;
-- Kết quả: Tổng lương của tất cả nhân viên
SELECT SUM(sales_amount) AS total_sales FROM sales;
-- Kết quả: Tổng doanh thu từ bảng sales
Giải thích:
SUM(column_name)
tính tổng của tất cả các giá trị trong cột.
3. Hàm AVG()
AVG()
tính giá trị trung bình của các giá trị trong một cột.
Cú pháp:
Ví dụ:
SELECT AVG(salary) AS average_salary FROM employees;
-- Kết quả: Lương trung bình của tất cả nhân viên
SELECT AVG(rating) AS average_rating FROM products;
-- Kết quả: Đánh giá trung bình của tất cả sản phẩm
Giải thích:
AVG(column_name)
tính giá trị trung bình của tất cả các giá trị trong cột.
4. Hàm MAX()
MAX()
trả về giá trị lớn nhất trong một cột.
Cú pháp:
Ví dụ:
SELECT MAX(salary) AS highest_salary FROM employees;
-- Kết quả: Lương cao nhất trong bảng employees
SELECT MAX(date_of_purchase) AS latest_purchase FROM purchases;
-- Kết quả: Ngày mua mới nhất từ bảng purchases
Giải thích:
MAX(column_name)
trả về giá trị lớn nhất trong cột.
5. Hàm MIN()
MIN()
trả về giá trị nhỏ nhất trong một cột.
Cú pháp:
Ví dụ:
SELECT MIN(salary) AS lowest_salary FROM employees;
-- Kết quả: Lương thấp nhất trong bảng employees
SELECT MIN(date_of_purchase) AS earliest_purchase FROM purchases;
-- Kết quả: Ngày mua sớm nhất từ bảng purchases
Giải thích:
MIN(column_name)
trả về giá trị nhỏ nhất trong cột.
6. Hàm GROUP_CONCAT()
GROUP_CONCAT()
nối các giá trị từ nhiều hàng thành một chuỗi duy nhất, phân cách bởi một dấu phân cách tùy chọn.
Cú pháp:
GROUP_CONCAT([DISTINCT] column_name [ORDER BY column_name] [SEPARATOR separator])
Ví dụ:
SELECT GROUP_CONCAT(name SEPARATOR ', ') AS employee_names FROM employees;
-- Kết quả: Danh sách tên nhân viên, phân cách bằng dấu phẩy
SELECT GROUP_CONCAT(DISTINCT department ORDER BY department ASC SEPARATOR '; ') AS unique_departments FROM employees;
-- Kết quả: Danh sách các phòng ban duy nhất, phân cách bằng dấu chấm phẩy
Giải thích:
GROUP_CONCAT(column_name)
nối các giá trị trong cột thành một chuỗi, phân cách bởi dấu phân cách tùy chọn.
7. Hàm STDDEV()
và STDDEV_POP()
STDDEV()
tính toán độ lệch chuẩn mẫu.
STDDEV_POP()
tính toán độ lệch chuẩn toàn bộ tập hợp dữ liệu.
Cú pháp:
STDDEV(column_name)
-- Hoặc
STDDEV_POP(column_name)
Ví dụ:
SELECT STDDEV(salary) AS salary_stddev FROM employees;
-- Kết quả: Độ lệch chuẩn lương của nhân viên
SELECT STDDEV_POP(salary) AS salary_stddev_pop FROM employees;
-- Kết quả: Độ lệch chuẩn toàn bộ lương của nhân viên
Giải thích:
STDDEV(column_name)
tính toán độ lệch chuẩn mẫu của giá trị trong cột.
STDDEV_POP(column_name)
tính toán độ lệch chuẩn toàn bộ tập hợp của giá trị trong cột.
8. Hàm VARIANCE()
và VAR_POP()
VARIANCE()
tính toán phương sai mẫu.
VAR_POP()
tính toán phương sai toàn bộ tập hợp dữ liệu.
Cú pháp:
VARIANCE(column_name)
-- Hoặc
VAR_POP(column_name)
Ví dụ:
SELECT VARIANCE(salary) AS salary_variance FROM employees;
-- Kết quả: Phương sai lương của nhân viên
SELECT VAR_POP(salary) AS salary_variance_pop FROM employees;
-- Kết quả: Phương sai toàn bộ lương của nhân viên
Giải thích:
VARIANCE(column_name)
tính toán phương sai mẫu của giá trị trong cột.
VAR_POP(column_name)
tính toán phương sai toàn bộ tập hợp của giá trị trong cột.
9. Hàm BIT_AND()
và BIT_OR()
BIT_AND()
thực hiện phép AND bitwise trên tất cả các giá trị của một cột.
BIT_OR()
thực hiện phép OR bitwise trên tất cả các giá trị của một cột.
Cú pháp:
BIT_AND(column_name)
-- Hoặc
BIT_OR(column_name)
Ví dụ:
SELECT BIT_AND(flag_column) AS bitwise_and_result FROM table_name;
-- Kết quả: Kết quả phép AND bitwise của tất cả các giá trị trong cột flag_column
SELECT BIT_OR(flag_column) AS bitwise_or_result FROM table_name;
-- Kết quả: Kết quả phép OR bitwise của tất cả các giá trị trong cột flag_column
Giải thích:
BIT_AND(column_name)
và BIT_OR(column_name)
thực hiện các phép toán bitwise AND và OR trên tất cả các giá trị trong cột tương ứng.
Các hàm tổng hợp trong MySQL giúp bạn thực hiện các phép toán và phân tích dữ liệu nhanh chóng và hiệu quả. Chúng cung cấp các công cụ cần thiết để tổng hợp thông tin, tạo ra báo cáo thống kê, và phân tích dữ liệu theo nhiều cách khác nhau.