Hàm Sum () trong SQL là một hàm tổng hợp trong SQL trả về tổng giá trị của một biểu thức. Biểu thức có thể là số hoặc có thể là một biểu thức.
Cú pháp:
SELECT SUM(columnname) FROM table_name WHERE conditions;
Hãy xem xét các bảng hiện có có các bản ghi sau:
Bảng:Nhân viên
EMPLOYEEID | FIRST_NAME | LAST_NAME | TIỀN LƯƠNG | THÀNH PHỐ | KHOA | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C # | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | ĐIỀU CHỈNH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50000 | MUMBAI | C # | 5 |
3001 | PRANOTI | CHIA SẺ | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | DÂY | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | MỤC TIÊU | 60500 | MUMBAI | KIỂM TRA | 4 |
4002 | ASHWINI | TÚI XÁCH | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | KIỂM TRA | 4 |
Ví dụ 1: Viết truy vấn tính tổng tiền lương của nhân viên từ bảng nhân viên.
SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES;
Biểu thức Sum sẽ hiển thị tổng tiền lương. s
Đầu ra:
SALARY |
742000 |
Ví dụ 2: Viết một truy vấn để tính tổng tiền lương của những nhân viên có thành phố là Pune từ bảng của nhân viên.
SELECT CITY, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'PUNE';
Truy vấn này sẽ tính tổng tiền lương của những nhân viên có thành phố là Pune.
Đầu ra:
CITY | TIỀN LƯƠNG |
PUNE | 186500 |
Ví dụ 3: Viết một truy vấn để tổng hợp lương của nhân viên từ bảng nhân viên của những nhân viên có bộ phận là Oracle.
SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE';
Đầu ra:
KHOA | TIỀN LƯƠNG |
ORACLE | 181000 |
Ví dụ 4: Viết một truy vấn để tổng hợp lương của nhân viên từ bảng nhân viên có bộ phận bao gồm oracle và FMW.
SELECT SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Đầu ra:
SALARY |
347500 |
Ví dụ 4: Viết truy vấn tổng hợp lương của nhân viên từ bảng của nhân viên có mức lương lớn hơn 50000 và thành phố bao gồm Pune và Mumbai.
SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY;
Đầu ra :
CITY | EMPLOYEE_SALARY |
PUNE | 119000 |
MUMBAI | 186500 |
Ví dụ 5: Viết một truy vấn để tổng hợp lương của nhân viên từ bảng của nhân viên có mức lương lớn hơn 50000 hoặc thành phố bao gồm Oracle, FMW và nhóm theo bộ phận.
SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT;
Đầu ra:
KHOA | EMPLOYEE_SALARY |
C # | 60000 |
FMW | 166500 |
JAVA | 168500 |
ORACLE | 181000 |
KIỂM TRA | 116000 |
Ví dụ 6: Viết một truy vấn để tổng hợp mức lương của nhân viên từ bảng của nhân viên bằng cách sử dụng các thành phố duy nhất của nhân viên và nhóm theo thành phố.
SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY;
Đầu ra:
CITY | EMPLOYEE_SALARY |
ĐIỀU CHỈNH | 55500 |
DELHI | 115500 |
JAIPUR | 50500 |
MUMBAI | 169000 |
NOIDA | 114500 |
PUNE | 121000 |
Ví dụ 7: Viết một truy vấn để tổng hợp mức lương của nhân viên từ bảng của nhân viên có bộ phận và nhóm duy nhất theo bộ phận.
SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Đầu ra:
KHOA | EMPLOYEE_SALARY |
C # | 110000 |
FMW | 116000 |
JAVA | 168500 |
ORACLE | 181000 |
KIỂM TRA | 116000 |
Ví dụ 8: Viết truy vấn tổng hợp lương của nhân viên từ bảng và nhóm nhân viên theo thành phố, bộ phận.
SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;
Đầu ra:
CITY | KHOA | EMPLOYEE_SALARY |
ĐIỀU CHỈNH | ORACLE | 55500 |
DELHI | ORACLE | 60000 |
DELHI | KIỂM TRA | 55500 |
JAIPUR | FMW | 101000 |
MUMBAI | C # | 50000 |
MUMBAI | JAVA | 58500 |
MUMBAI | KIỂM TRA | 60500 |
NOIDA | C # | 60000 |
NOIDA | JAVA | 54500 |
PUNE | FMW | 65500 |
PUNE | JAVA | 55500 |
PUNE | ORACLE | 65500 |
Ví dụ 9: Viết một truy vấn để tổng hợp mức lương của các nhân viên từ nhóm nhân viên theo thành phố nơi mức lương tổng hợp lớn hơn 75000.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000;
Đầu ra:
CITY | TIỀN LƯƠNG |
DELHI | 115500 |
JAIPUR | 101000 |
MUMBAI | 169000 |
NOIDA | 114500 |
PUNE | 186500 |
Như chúng ta có thể thấy, nó chỉ có các thành phố có mức lương tổng hợp lớn hơn 75000.
Ví dụ 10: Viết một truy vấn để tổng hợp lương của một nhân viên bằng máy tính xách tay và nhóm theo bộ phận.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Đầu ra:
KHOA | TIỀN LƯƠNG |
C # | 60000 |
JAVA | 113000 |
ORACLE | 60000 |
KIỂM TRA | 55500 |
Ví dụ 11: Viết câu truy vấn tổng hợp tiền lương của nhân viên bằng máy tính xách tay và nhóm theo bộ phận có mức lương tổng hợp lớn hơn 58000.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000;
Đầu ra:
KHOA | TIỀN LƯƠNG |
C # | 60000 |
JAVA | 113000 |
ORACLE | 60000 |