Việc báo cáo dữ liệu tổng hợp bằng cách sử dụng các hàm nhóm (group functions) trong SQL là một kỹ thuật quan trọng để phân tích và tóm tắt dữ liệu. Các hàm nhóm này thường được sử dụng cùng với mệnh đề GROUP BY để tính toán và trả về một giá trị duy nhất cho mỗi nhóm các hàng trong tập dữ liệu.
Using Group Functions | Sử dụng Group by trong SQL
Các Hàm Nhóm Phổ Biến sử dụng Group by
- COUNT(): Đếm số hàng trong mỗi nhóm.
- SUM(): Tính tổng giá trị của một cột số trong mỗi nhóm.
- AVG(): Tính giá trị trung bình của một cột số trong mỗi nhóm.
- MIN(): Tìm giá trị nhỏ nhất của một cột trong mỗi nhóm.
- MAX(): Tìm giá trị lớn nhất của một cột trong mỗi nhóm.
Cách Sử Dụng Các Hàm Với GROUP BY
1. COUNT()
Ví dụ: Đếm số lượng nhân viên trong mỗi phòng ban.
SELECT department_id, COUNT(*) AS num_employees FROM employees GROUP BY department_id;
Kết quả:
| department_id | num_employees |
|---|---|
| 10 | 3 |
| 20 | 5 |
| 30 | 7 |
2. SUM()
Ví dụ: Tính tổng lương của các nhân viên trong mỗi phòng ban.
SELECT department_id, SUM(salary) AS total_salary FROM employees GROUP BY department_id;
Kết quả:
| department_id | total_salary |
|---|---|
| 10 | 50000 |
| 20 | 75000 |
| 30 | 100000 |
3. AVG()
Ví dụ: Tính lương trung bình của các nhân viên trong mỗi phòng ban.
SELECT department_id, AVG(salary) AS average_salary FROM employees GROUP BY department_id;
Kết quả:
| department_id | average_salary |
|---|---|
| 10 | 16666.67 |
| 20 | 15000.00 |
| 30 | 14285.71 |
4. MIN()
Ví dụ: Tìm lương thấp nhất của các nhân viên trong mỗi phòng ban.
SELECT department_id, MIN(salary) AS min_salary FROM employees GROUP BY department_id;
Kết quả:
| department_id | min_salary |
|---|---|
| 10 | 15000 |
| 20 | 12000 |
| 30 | 10000 |
5. MAX()
Ví dụ: Tìm lương cao nhất của các nhân viên trong mỗi phòng ban.
SELECT department_id, MAX(salary) AS max_salary FROM employees GROUP BY department_id;
Kết quả:
| department_id | max_salary |
|---|---|
| 10 | 20000 |
| 20 | 20000 |
| 30 | 20000 |
Sử Dụng GROUP BY Với Nhiều Cột
Bạn cũng có thể nhóm theo nhiều cột. Ví dụ, để đếm số nhân viên trong mỗi phòng ban theo từng chức danh công việc:
SELECT department_id, job_id, COUNT(*) AS num_employees FROM employees GROUP BY department_id, job_id;
Kết quả:
| department_id | job_id | num_employees |
|---|---|---|
| 10 | IT_PROG | 2 |
| 10 | AD_ASST | 1 |
| 20 | MK_REP | 3 |
| 20 | HR_REP | 2 |
| 30 | SA_MAN | 4 |
| 30 | SA_REP | 3 |
Sử Dụng HAVING Để Lọc Kết Quả Sau Khi Nhóm
Mệnh đề HAVING được sử dụng để lọc kết quả sau khi đã áp dụng GROUP BY. Điều này tương tự như mệnh đề WHERE nhưng được sử dụng cho các nhóm.
Ví dụ: Chỉ hiển thị các phòng ban có tổng lương lớn hơn 70,000.
SELECT department_id, SUM(salary) AS total_salary FROM employees GROUP BY department_id HAVING SUM(salary) > 70000;
Kết quả:
| department_id | total_salary |
|---|---|
| 20 | 75000 |
| 30 | 100000 |
Tóm lại:
- COUNT(): Đếm số hàng.
- SUM(): Tính tổng.
- AVG(): Tính trung bình.
- MIN(): Tìm giá trị nhỏ nhất.
- MAX(): Tìm giá trị lớn nhất.
- GROUP BY: Nhóm các hàng lại với nhau để áp dụng các hàm nhóm.
- HAVING: Lọc các nhóm sau khi đã áp dụng GROUP BY.
Sử dụng các hàm nhóm và mệnh đề GROUP BY giúp bạn tóm tắt và phân tích dữ liệu một cách hiệu quả trong SQL.
- Tương Lai của Bitcoin: Liệu Bitcoin Có Trở Thành Tiền Tệ Toàn Cầu?
- PostgreSQL Limitations – giới hạn của Postgresql
- Quản trị index trong postgresql
- Q41 An Oracle database session has an uncommitted transaction in progress which updated 5000 rows in a table
- Vai trò của AI trong việc phát triển game thế hệ mới

Bikil - Bikini & Lingerie Fashion Responsive Shopify Theme
Ashi - Yoga Pilates, Fitness Shopify Theme
Minimog - Next-gen Multipurpose Shopify theme grade-A
Download Monitor - CSV Importer
Porto | Multipurpose & WooCommerce Theme
Ninja E-Sport - Gaming Elementor Template Kit
Almighty Wordpress Theme
Seporta - Gym & Fitness Trainer Elementor Template Kit
Finess Elementor Template Kit
Groovy Mega Menu
Lunar - Template Kit for eSport & Gaming
Revision - Optimized Personal Blog WordPress Theme
CheerUp - Food, Blog & Magazine for WordPress
Gymsite - Gym Elementor Template Kit
Menica - Wedding Elementor Template Kit
Fodis - Restaurant & Cafe WordPress Theme
jannifer hamis health coach healthy lifestyle blog
Ohio - Creative Portfolio & Agency WordPress Theme
Academy pro wordpress theme
Adaptable Notes Wordpress Theme
Traveler - Travel Booking WordPress Theme
Gloreya - Food Ordering & Delivery Restaurant WordPress Theme