SQL Sum()-funktionen är en aggregerad funktion i SQL som returnerar de totala värdena för ett uttryck. Uttrycket kan vara numeriskt, eller det kan vara ett uttryck.
Syntax:
SELECT SUM(columnname) FROM table_name WHERE conditions;
Tänk på de befintliga tabellerna som har följande poster:
Tabell:Anställda
ANSTÄLLDA ID | FIRST_NAME | LAST_NAME | LÖN | STAD | AVDELNING | MANAGERID |
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 | TESTER | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60 000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTER | 4 |
Exempel 1: Skriv en fråga som summerar de anställdas totala lön från de anställdas tabell.
SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES;
Summany kommer att visa summan av den totala lönen. s
Utdata:
LÖN |
742000 |
Exempel 2: Skriv en fråga för att summera lönen för anställda vars stad är Pune från de anställdas tabell.
SELECT CITY, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'PUNE';
Denna fråga kommer att göra en summa av lönen för de anställda vars stad är Pune.
Utdata:
STAD | LÖN |
PUNE | 186500 |
Exempel 3: Skriv en fråga för att summera de anställdas lön från de anställdas tabell över anställda vars avdelning är Oracle.
SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE';
Utdata:
AVDELNING | LÖN |
ORACLE | 181000 |
Exempel 4: Skriv en fråga för att summera lönen för anställda från de anställdas tabell vars avdelning inkluderar oracle och FMW.
SELECT SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Utdata:
LÖN |
347500 |
Exempel 4: Skriv en fråga till den totala lönen för anställda från anställdas tabell vars lön är större än 50 000 och staden inkluderar Pune och Mumbai.
SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY;
Utdata :
STAD | EMPLOYEE_SALARY |
PUNE | 119000 |
MUMBAI | 186500 |
Exempel 5: Skriv en fråga för att summera lönen för anställda från anställdas tabell vars lön är större än 50 000 eller orten inkluderar Oracle, FMW och grupp per avdelning.
SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT;
Utdata:
AVDELNING | EMPLOYEE_SALARY |
C# | 60 000 |
FMW | 166500 |
JAVA | 168500 |
ORACLE | 181000 |
TESTER | 116000 |
Exempel 6: Skriv en fråga för att summera lönen för anställda från anställdas tabell med hjälp av unika städer för anställda och grupp för stad.
SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY;
Utdata:
STAD | EMPLOYEE_SALARY |
CHANDIGARH | 55500 |
DELHI | 115500 |
JAIPUR | 50500 |
MUMBAI | 169000 |
NOIDA | 114500 |
PUNE | 121000 |
Exempel 7: Skriv en fråga för att summera lönen för anställda från anställdas tabell som har unik avdelning och grupp av avdelningen.
SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Utdata:
AVDELNING | EMPLOYEE_SALARY |
C# | 110 000 |
FMW | 116000 |
JAVA | 168500 |
ORACLE | 181000 |
TESTER | 116000 |
Exempel 8: Skriv en fråga för att summera lönen för anställda från anställdas tabell och gruppera efter stad, avdelning.
SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;
Utdata:
STAD | AVDELNING | EMPLOYEE_SALARY |
CHANDIGARH | ORACLE | 55500 |
DELHI | ORACLE | 60 000 |
DELHI | TESTER | 55500 |
JAIPUR | FMW | 101 000 |
MUMBAI | C# | 50 000 |
MUMBAI | JAVA | 58500 |
MUMBAI | TESTER | 60500 |
NOIDA | C# | 60 000 |
NOIDA | JAVA | 54500 |
PUNE | FMW | 65500 |
PUNE | JAVA | 55500 |
PUNE | ORACLE | 65500 |
Exempel 9: Skriv en fråga för att summera lönen för de anställda från anställdas tabellgrupp efter den stad där den sammanlagda lönen är större än 75 000.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000;
Utdata:
STAD | LÖN |
DELHI | 115500 |
JAIPUR | 101 000 |
MUMBAI | 169000 |
NOIDA | 114500 |
PUNE | 186500 |
Som vi kan se har det bara städer där den sammanlagda lönen är högre än 75 000.
Exempel 10: Skriv en fråga för att summera en anställds lön med en bärbar dator och gruppera efter avdelningen.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Utdata:
AVDELNING | LÖN |
C# | 60 000 |
JAVA | 113000 |
ORACLE | 60 000 |
TESTER | 55500 |
Exempel 11: Skriv en fråga för att summera anställdas lön med laptop och grupp av den avdelning där den sammanlagda lönen är större än 58 000.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000;
Utdata:
AVDELNING | LÖN |
C# | 60 000 |
JAVA | 113000 |
ORACLE | 60 000 |