SQL Sum()-funktionen er en aggregeret funktion i SQL, der returnerer de samlede værdier af et udtryk. Udtrykket kan være numerisk, eller det kan være et udtryk.
Syntaks:
SELECT SUM(columnname) FROM table_name WHERE conditions;
Overvej de eksisterende tabeller, som har følgende poster:
Tabel:Medarbejdere
EMPLOYEEID | FIRST_NAME | LAST_NAME | LØN | BY | AFDELING | 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 | TEST | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60.000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TEST | 4 |
Eksempel 1: Skriv en forespørgsel, der summerer medarbejdernes samlede løn fra medarbejdernes tabel.
SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES;
Sum-udtrykket vil vise summen af den samlede løn. s
Output:
LØN |
742000 |
Eksempel 2: Skriv en forespørgsel for at summere lønnen for medarbejdere, hvis by er Pune, fra medarbejdernes tabel.
SELECT CITY, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'PUNE';
Denne forespørgsel vil lave en sum af lønnen for de ansatte, hvis by er Pune.
Output:
BY | LØN |
PUNE | 186500 |
Eksempel 3: Skriv en forespørgsel for at summere medarbejdernes løn fra medarbejdernes tabel over medarbejdere, hvis afdeling er Oracle.
SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE';
Output:
AFDELING | LØN |
ORACLE | 181000 |
Eksempel 4: Skriv en forespørgsel for at summere løn til medarbejdere fra medarbejdernes tabel, hvis afdeling omfatter oracle og FMW.
SELECT SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Output:
LØN |
347500 |
Eksempel 4: Skriv en forespørgsel til opsummeret løn for medarbejdere fra medarbejderes tabel, hvis løn er større end 50.000, og byen omfatter Pune og Mumbai.
SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY;
Output :
BY | EMPLOYEE_SALARY |
PUNE | 119000 |
MUMBAI | 186500 |
Eksempel 5: Skriv en forespørgsel for at summere løn for medarbejdere fra medarbejderes tabel, hvis løn er større end 50.000, eller by inkluderer Oracle, FMW og gruppe efter afdelingen.
SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT;
Output:
AFDELING | EMPLOYEE_SALARY |
C# | 60.000 |
FMW | 166500 |
JAVA | 168500 |
ORACLE | 181000 |
TEST | 116000 |
Eksempel 6: Skriv en forespørgsel for at opsummere medarbejdernes løn fra medarbejderens tabel ved hjælp af unikke byer for medarbejdere og gruppe for by.
SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY;
Output:
BY | EMPLOYEE_SALARY |
CHANDIGARH | 55500 |
DELHI | 115500 |
JAIPUR | 50500 |
MUMBAI | 169000 |
NOIDA | 114500 |
PUNE | 121000 |
Eksempel 7: Skriv en forespørgsel for at opsummere lønnen for medarbejdere fra medarbejderens tabel, som har en unik afdeling og gruppe af afdelingen.
SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Output:
AFDELING | EMPLOYEE_SALARY |
C# | 110.000 |
FMW | 116000 |
JAVA | 168500 |
ORACLE | 181000 |
TEST | 116000 |
Eksempel 8: Skriv en forespørgsel for at opsummere medarbejdernes løn fra medarbejderens tabel og grupper efter by, afdeling.
SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;
Output:
BY | AFDELING | EMPLOYEE_SALARY |
CHANDIGARH | ORACLE | 55500 |
DELHI | ORACLE | 60.000 |
DELHI | TEST | 55500 |
JAIPUR | FMW | 101000 |
MUMBAI | C# | 50.000 |
MUMBAI | JAVA | 58500 |
MUMBAI | TEST | 60500 |
NOIDA | C# | 60.000 |
NOIDA | JAVA | 54500 |
PUNE | FMW | 65500 |
PUNE | JAVA | 55500 |
PUNE | ORACLE | 65500 |
Eksempel 9: Skriv en forespørgsel for at summere medarbejdernes løn fra medarbejderens tabelgruppe efter den by, hvor den samlede løn er større end 75.000.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000;
Output:
BY | LØN |
DELHI | 115500 |
JAIPUR | 101000 |
MUMBAI | 169000 |
NOIDA | 114500 |
PUNE | 186500 |
Som vi kan se, har det kun byer, hvor den samlede løn er større end 75.000.
Eksempel 10: Skriv en forespørgsel for at summere en medarbejders løn med en bærbar computer og grupper efter afdelingen.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Output:
AFDELING | LØN |
C# | 60.000 |
JAVA | 113000 |
ORACLE | 60.000 |
TEST | 55500 |
Eksempel 11: Skriv en forespørgsel for at summere medarbejdernes løn med bærbar computer og gruppe af afdelingen, hvor den samlede løn er større end 58.000.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000;
Output:
AFDELING | LØN |
C# | 60.000 |
JAVA | 113000 |
ORACLE | 60.000 |