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 |
