Funkcja SQL Sum() jest funkcją agregującą w języku SQL, która zwraca łączne wartości wyrażenia. Wyrażenie może być liczbowe lub może być wyrażeniem.
Składnia:
SELECT SUM(columnname) FROM table_name WHERE conditions; Rozważ istniejące tabele, które mają następujące rekordy:
Tabela:Pracownicy
| ID PRACOWNIKA | FIRST_NAME | LAST_NAME | WYNAGRODZENIE | MIASTO | DZIAŁ | IDENTYFIKATOR KIEROWCY |
| 1001 | VAIBHAVI | MISHRA | 65500 | PUNE | WYROCZNIA | 1 |
| 1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
| 1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
| 2001 | PRACI | SHARMA | 55500 | CZANDIGAR | WYROCZNIA | 1 |
| 2002 | PRZYJMUJ SIĘ | JAIN | 65500 | PUNE | FMW | 2 |
| 2003 | RUCHIKA | JAIN | 50000 | MUMBAJ | C# | 5 |
| 3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
| 3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
| 3003 | DEEPAM | JAUHARI | 58500 | MUMBAJ | JAVA | 3 |
| 4001 | RAJESH | GOUD | 60500 | MUMBAJ | TESTOWANIE | 4 |
| 4002 | ASHWINI | TORBA | 54500 | NOIDA | JAVA | 3 |
| 4003 | RUCHIKA | AGARWAL | 60000 | DELHI | WYROCZNIA | 1 |
| 5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTOWANIE | 4 |
Przykład 1: Napisz zapytanie sumujące łączną pensję pracowników z tabeli pracowników.
SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES; Wyrażenie Sum wyświetli sumę całkowitego wynagrodzenia. s
Wyjście:
| WYNAGRODZENIE |
| 742000 |
Przykład 2: Napisz zapytanie, aby zsumować wynagrodzenie pracowników, których miasto to Pune z tabeli pracowników.
SELECT CITY, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'PUNE'; To zapytanie spowoduje zsumowanie pensji pracowników z miasta Pune.
Wyjście:
| MIASTO | WYNAGRODZENIE |
| PUNE | 186500 |
Przykład 3: Napisz zapytanie, aby zsumować wynagrodzenie pracowników z tabeli pracowników pracowników, których działem jest Oracle.
SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE'; Wyjście:
| DZIAŁ | WYNAGRODZENIE |
| WYROCZNIA | 181000 |
Przykład 4: Napisz zapytanie sumujące wynagrodzenie pracowników z tabeli pracowników, których dział obejmuje oracle i FMW.
SELECT SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW'); Wyjście:
| WYNAGRODZENIE |
| 347500 |
Przykład 4: Napisz zapytanie do sumarycznej pensji pracowników z tabeli pracowników, których pensja jest większa niż 50000, a miasto obejmuje Pune i Bombaj.
SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY; Wyjście :
| MIASTO | EMPLOYEE_SALARY |
| PUNE | 119000 |
| MUMBAJ | 186500 |
Przykład 5: Napisz zapytanie sumujące pensje pracowników z tabeli pracowników, których wynagrodzenie jest większe niż 50000 lub miasto zawiera Oracle, FMW i pogrupuj według działu.
SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT; Wyjście:
| DZIAŁ | EMPLOYEE_SALARY |
| C# | 60000 |
| FMW | 166500 |
| JAVA | 168500 |
| WYROCZNIA | 181000 |
| TESTOWANIE | 116000 |
Przykład 6: Napisz zapytanie, aby zsumować wynagrodzenie pracowników z tabeli pracowników, używając unikalnych miast pracowników i grupując je według miasta.
SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY; Wyjście:
| MIASTO | EMPLOYEE_SALARY |
| CZANDIGAR | 55500 |
| DELHI | 115500 |
| JAIPUR | 50500 |
| MUMBAJ | 169000 |
| NOIDA | 114500 |
| PUNE | 121000 |
Przykład 7: Napisz zapytanie sumujące wynagrodzenie pracowników z tabeli pracowników, którzy mają unikalny dział i pogrupowane według działu.
SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT; Wyjście:
| DZIAŁ | EMPLOYEE_SALARY |
| C# | 110000 |
| FMW | 116000 |
| JAVA | 168500 |
| WYROCZNIA | 181000 |
| TESTOWANIE | 116000 |
Przykład 8: Napisz zapytanie, aby zsumować wynagrodzenie pracowników z tabeli pracownika i pogrupować według miasta, działu.
SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT; Wyjście:
| MIASTO | DZIAŁ | EMPLOYEE_SALARY |
| CZANDIGAR | WYROCZNIA | 55500 |
| DELHI | WYROCZNIA | 60000 |
| DELHI | TESTOWANIE | 55500 |
| JAIPUR | FMW | 101000 |
| MUMBAJ | C# | 50000 |
| MUMBAJ | JAVA | 58500 |
| MUMBAJ | TESTOWANIE | 60500 |
| NOIDA | C# | 60000 |
| NOIDA | JAVA | 54500 |
| PUNE | FMW | 65500 |
| PUNE | JAVA | 55500 |
| PUNE | WYROCZNIA | 65500 |
Przykład 9: Napisz zapytanie sumujące wynagrodzenie pracowników z grupy tabel pracowników według miasta, w którym łączna pensja jest większa niż 75000.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000; Wyjście:
| MIASTO | WYNAGRODZENIE |
| DELHI | 115500 |
| JAIPUR | 101000 |
| MUMBAJ | 169000 |
| NOIDA | 114500 |
| PUNE | 186500 |
Jak widać, ma tylko miasta, w których łączne zarobki przekraczają 75000.
Przykład 10: Napisz zapytanie, aby zsumować wynagrodzenie pracownika z laptopem i pogrupować według działu.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT; Wyjście:
| DZIAŁ | WYNAGRODZENIE |
| C# | 60000 |
| JAVA | 113000 |
| WYROCZNIA | 60000 |
| TESTOWANIE | 55500 |
Przykład 11: Napisz zapytanie, aby zsumować wynagrodzenie pracowników z laptopem i pogrupować według działu, w którym łączne wynagrodzenie jest większe niż 58000.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000; Wyjście:
| DZIAŁ | WYNAGRODZENIE |
| C# | 60000 |
| JAVA | 113000 |
| WYROCZNIA | 60000 |