Using Group Functions | Sử dụng Group by trong SQL

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

  1. COUNT(): Đếm số hàng trong mỗi nhóm.
  2. SUM(): Tính tổng giá trị của một cột số trong mỗi nhóm.
  3. AVG(): Tính giá trị trung bình của một cột số trong mỗi nhóm.
  4. MIN(): Tìm giá trị nhỏ nhất của một cột trong mỗi nhóm.
  5. 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.

 

Danh mục: SQL
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận