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_idnum_employees
103
205
307

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_idtotal_salary
1050000
2075000
30100000

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_idaverage_salary
1016666.67
2015000.00
3014285.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_idmin_salary
1015000
2012000
3010000

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_idmax_salary
1020000
2020000
3020000

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_idjob_idnum_employees
10IT_PROG2
10AD_ASST1
20MK_REP3
20HR_REP2
30SA_MAN4
30SA_REP3

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_idtotal_salary
2075000
30100000

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.

 

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