Dưới đây là một số ví dụ cụ thể về cách sử dụng hàm COUNT() và SUM() trong SQL, kèm theo bảng dữ liệu giả định để bạn có thể hình dung cách áp dụng trong thực tế.
Bảng dữ liệu giả định
Giả sử bạn có một bảng employees chứa thông tin về nhân viên như sau:
| employee_id | first_name | last_name | department | salary | age |
|---|---|---|---|---|---|
| 1 | John | Doe | Sales | 1500000 | 35 |
| 2 | Jane | Smith | Marketing | 1700000 | 28 |
| 3 | Bob | Johnson | Sales | 1300000 | 40 |
| 4 | Alice | Brown | HR | 2000000 | 45 |
| 5 | Charlie | Green | Marketing | 1800000 | 25 |
1. Sử dụng COUNT() để đếm số lượng nhân viên
Nếu bạn muốn biết có bao nhiêu nhân viên trong bảng employees, bạn có thể sử dụng hàm COUNT(*) để đếm tất cả các bản ghi trong bảng.
SELECT COUNT(*) AS total_employees
FROM employees;Kết quả:
| total_employees |
|---|
| 5 |
Câu lệnh này trả về tổng số lượng nhân viên có trong bảng.
2. Sử dụng COUNT() với điều kiện WHERE
Bạn có thể kết hợp hàm COUNT() với điều kiện WHERE để chỉ đếm các nhân viên thuộc phòng ban cụ thể, chẳng hạn như phòng ban "Sales".
SELECT COUNT(*) AS sales_employees
FROM employees
WHERE department = 'Sales';Kết quả:
| sales_employees |
|---|
| 2 |
Câu lệnh này trả về số lượng nhân viên trong phòng ban "Sales".
3. Sử dụng COUNT(column_name) để đếm giá trị không phải NULL
Giả sử cột salary có một số giá trị là NULL (ví dụ, nhân viên chưa được cập nhật lương). Bạn có thể sử dụng COUNT(salary) để đếm số lượng nhân viên đã có lương.
SELECT COUNT(salary) AS employees_with_salary
FROM employees;Kết quả:
| employees_with_salary |
|---|
| 5 |
Trong trường hợp này, tất cả các nhân viên đều có lương, nên kết quả trả về là 5. Nếu có giá trị NULL trong cột salary, các bản ghi đó sẽ bị loại khỏi kết quả.
4. Sử dụng SUM() để tính tổng lương
Nếu bạn muốn biết tổng lương của tất cả nhân viên, bạn có thể sử dụng hàm SUM() để tính tổng giá trị của cột salary.
SELECT SUM(salary) AS total_salary
FROM employees;Kết quả:
| total_salary |
|---|
| 8300000 |
Tổng lương của tất cả nhân viên là 8,300,000.
5. Sử dụng SUM() với điều kiện WHERE
Bạn có thể sử dụng SUM() kết hợp với WHERE để tính tổng lương của các nhân viên trong một phòng ban cụ thể, chẳng hạn như "Marketing".
SELECT SUM(salary) AS total_marketing_salary
FROM employees
WHERE department = 'Marketing';Kết quả:
| total_marketing_salary |
|---|
| 3500000 |
Tổng lương của nhân viên trong phòng ban "Marketing" là 3,500,000.
6. Sử dụng COUNT() và SUM() với GROUP BY
Nếu bạn muốn biết tổng số nhân viên và tổng lương trong mỗi phòng ban, bạn có thể sử dụng hàm COUNT() và SUM() kết hợp với GROUP BY để nhóm dữ liệu theo từng phòng ban.
SELECT department, COUNT(*) AS employee_count, SUM(salary) AS total_salary
FROM employees
GROUP BY department;Kết quả:
| department | employee_count | total_salary |
|---|---|---|
| Sales | 2 | 2800000 |
| Marketing | 2 | 3500000 |
| HR | 1 | 2000000 |
Câu lệnh này trả về số lượng nhân viên và tổng lương cho từng phòng ban.
7. Sử dụng SUM() để tính tổng giá trị dựa trên điều kiện
Bạn có thể tính tổng lương cho các nhân viên có tuổi lớn hơn 30 bằng cách kết hợp SUM() với điều kiện WHERE.
SELECT SUM(salary) AS total_salary_above_30
FROM employees
WHERE age > 30;Kết quả:
| total_salary_above_30 |
|---|
| 4800000 |
Tổng lương của những nhân viên có độ tuổi trên 30 là 4,800,000.
8. Sử dụng COUNT(DISTINCT column_name) để đếm các giá trị khác nhau
Bạn có thể đếm số lượng các phòng ban khác nhau trong bảng employees bằng cách sử dụng COUNT(DISTINCT department).
SELECT COUNT(DISTINCT department) AS unique_departments
FROM employees;Kết quả:
| unique_departments |
|---|
| 3 |
Câu lệnh này trả về số lượng phòng ban duy nhất trong bảng employees, là 3 phòng ban.
9. Sử dụng SUM() kết hợp với CASE để tính tổng dựa trên điều kiện cụ thể
Giả sử bạn muốn tính tổng lương cho cả hai phòng ban "Sales" và "Marketing" nhưng tính riêng từng phòng ban. Bạn có thể sử dụng CASE để thực hiện điều này.
SELECT
SUM(CASE WHEN department = 'Sales' THEN salary ELSE 0 END) AS total_sales_salary,
SUM(CASE WHEN department = 'Marketing' THEN salary ELSE 0 END) AS total_marketing_salary
FROM employees;Kết quả:
| total_sales_salary | total_marketing_salary |
|---|---|
| 2800000 | 3500000 |
Câu lệnh này sẽ trả về tổng lương riêng cho phòng ban "Sales" và "Marketing".
10. Đếm số lượng nhân viên không thuộc phòng ban "HR"
Bạn có thể sử dụng COUNT() với điều kiện để đếm số lượng nhân viên không thuộc phòng ban "HR".
SELECT COUNT(*) AS non_hr_employees
FROM employees
WHERE department <> 'HR';Kết quả:
| non_hr_employees |
|---|
| 4 |
Câu lệnh này sẽ đếm tất cả nhân viên không thuộc phòng ban "HR", trả về kết quả là 4.
Kết luận
Các hàm COUNT() và SUM() trong SQL là những công cụ mạnh mẽ giúp bạn thực hiện các phép tính tổng hợp và phân tích dữ liệu. Qua các ví dụ thực tế này, bạn có thể dễ dàng áp dụng chúng trong các truy vấn SQL để đếm số lượng bản ghi và tính tổng giá trị của các cột số trong cơ sở dữ liệu.
Hãy thử áp dụng các kiến thức này vào các bài tập và dự án thực tế trên CodeTutHub để hiểu sâu hơn về cách sử dụng COUNT() và SUM() trong SQL!








