Funkce SQL Sum() je agregační funkce v SQL, která vrací celkové hodnoty výrazu. Výraz může být číselný nebo to může být výraz.
Syntaxe:
SELECT SUM(columnname) FROM table_name WHERE conditions;
Zvažte existující tabulky, které mají následující záznamy:
Tabulka:Zaměstnanci
ID ZAMĚSTNANCE | FIRST_NAME | LAST_NAME | PLAT | MĚSTO | ODDĚLENÍ | ID SPRÁVCE |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60 000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIgarH | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50 000 | MUMBAI | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | MUMBAI | TESTOVÁNÍ | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60 000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTOVÁNÍ | 4 |
Příklad 1: Napište dotaz, který sečte celkový plat zaměstnanců z tabulky zaměstnanců.
SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES;
Výraz Součet zobrazí součet celkové mzdy. s
Výstup:
PLAT |
742 000 |
Příklad 2: Napište dotaz pro sečtení platů zaměstnanců, jejichž městem je Pune, z tabulky zaměstnanců.
SELECT CITY, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'PUNE';
Tento dotaz vytvoří součet platů zaměstnanců, jejichž městem je Pune.
Výstup:
MĚSTO | PLAT |
PUNE | 186500 |
Příklad 3: Napište dotaz pro sečtení mezd zaměstnanců z tabulky zaměstnanců, jejichž oddělením je Oracle.
SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE';
Výstup:
ODDĚLENÍ | PLAT |
ORACLE | 181 000 |
Příklad 4: Napište dotaz na součet platů zaměstnanců z tabulky zaměstnanců, jejichž oddělení zahrnuje Oracle a FMW.
SELECT SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Výstup:
PLAT |
347500 |
Příklad 4: Napište dotaz na součtový plat zaměstnanců z tabulky zaměstnanců, jejichž plat je vyšší než 50 000 a město zahrnuje Pune a Mumbai.
SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY;
Výstup :
MĚSTO | ZAMĚSTNANECKÝ_PLAT |
PUNE | 119 000 |
MUMBAI | 186500 |
Příklad 5: Napište dotaz na součet platů zaměstnanců z tabulky zaměstnanců, jejichž plat je vyšší než 50 000 nebo město zahrnuje Oracle, FMW a skupinu podle oddělení.
SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT;
Výstup:
ODDĚLENÍ | ZAMĚSTNANECKÝ_PLAT |
C# | 60 000 |
FMW | 166500 |
JAVA | 168500 |
ORACLE | 181 000 |
TESTOVÁNÍ | 116 000 |
Příklad 6: Napište dotaz pro sečtení mezd zaměstnanců z tabulky zaměstnanců pomocí jedinečných měst zaměstnanců a skupin podle měst.
SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY;
Výstup:
MĚSTO | ZAMĚSTNANECKÝ_PLAT |
CHANDIGARH | 55500 |
DELHI | 115500 |
JAIPUR | 50500 |
MUMBAI | 169 000 |
NOIDA | 114500 |
PUNE | 121 000 |
Příklad 7: Napište dotaz na sečtení mezd zaměstnanců z tabulky zaměstnanců, kteří mají jedinečné oddělení a skupinu podle oddělení.
SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Výstup:
ODDĚLENÍ | ZAMĚSTNANECKÝ_PLAT |
C# | 110 000 |
FMW | 116 000 |
JAVA | 168500 |
ORACLE | 181 000 |
TESTOVÁNÍ | 116 000 |
Příklad 8: Napište dotaz pro sečtení mezd zaměstnanců z tabulky zaměstnanců a skupiny podle města, oddělení.
SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;
Výstup:
MĚSTO | ODDĚLENÍ | ZAMĚSTNANECKÝ_PLAT |
CHANDIGARH | ORACLE | 55500 |
DELHI | ORACLE | 60 000 |
DELHI | TESTOVÁNÍ | 55500 |
JAIPUR | FMW | 101 000 |
MUMBAI | C# | 50 000 |
MUMBAI | JAVA | 58500 |
MUMBAI | TESTOVÁNÍ | 60500 |
NOIDA | C# | 60 000 |
NOIDA | JAVA | 54500 |
PUNE | FMW | 65500 |
PUNE | JAVA | 55500 |
PUNE | ORACLE | 65500 |
Příklad 9: Napište dotaz pro sečtení platů zaměstnanců z tabulky zaměstnanců podle města, kde je celkový plat větší než 75 000.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000;
Výstup:
MĚSTO | PLAT |
DELHI | 115500 |
JAIPUR | 101 000 |
MUMBAI | 169 000 |
NOIDA | 114500 |
PUNE | 186500 |
Jak vidíme, má pouze města, jejichž celkový plat je vyšší než 75 000.
Příklad 10: Napište dotaz na sečtení platu zaměstnance pomocí notebooku a seskupte jej podle oddělení.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Výstup:
ODDĚLENÍ | PLAT |
C# | 60 000 |
JAVA | 113 000 |
ORACLE | 60 000 |
TESTOVÁNÍ | 55500 |
Příklad 11: Napište dotaz pro sečtení mezd zaměstnanců pomocí notebooku a seskupte je podle oddělení, kde je celkový plat vyšší než 58 000.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000;
Výstup:
ODDĚLENÍ | PLAT |
C# | 60 000 |
JAVA | 113 000 |
ORACLE | 60 000 |