De functie SQL Sum() is een aggregatiefunctie in SQL die de totale waarden van een expressie retourneert. De uitdrukking kan numeriek zijn, of het kan een uitdrukking zijn.
Syntaxis:
SELECT SUM(columnname) FROM table_name WHERE conditions;
Beschouw de bestaande tabellen die de volgende records hebben:
Tabel:Medewerkers
WERKNEMER-ID | FIRST_NAME | LAST_NAME | SALARIS | STAD | AFDELING | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORAKLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORAKLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50000 | 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 | TESTEN | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORAKLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TESTEN | 4 |
Voorbeeld 1: Schrijf een zoekopdracht die het totale salaris van werknemers optelt uit de werknemerstabel.
SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES;
De uitdrukking Som geeft de som van het totale salaris weer. s
Uitvoer:
SALARIS |
742000 |
Voorbeeld 2: Schrijf een vraag om het salaris op te tellen van werknemers wiens stad Pune is uit de werknemerstabel.
SELECT CITY, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'PUNE';
Deze zoekopdracht maakt een som van het salaris van de werknemers wiens stad Pune is.
Uitvoer:
STAD | SALARIS |
PUNE | 186500 |
Voorbeeld 3: Schrijf een query om het salaris van de werknemers op te tellen uit de werknemerstabel van werknemers waarvan de afdeling Oracle is.
SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE';
Uitvoer:
AFDELING | SALARIS |
ORAKLE | 181000 |
Voorbeeld 4: Schrijf een vraag om het salaris van werknemers op te tellen uit de werknemerstabel waarvan de afdeling orakel en FMW omvat.
SELECT SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Uitvoer:
SALARIS |
347500 |
Voorbeeld 4: Schrijf een zoekopdracht naar het gesommeerde salaris van werknemers uit de werknemerstabel met een salaris van meer dan 50000 en de stad omvat Pune en Mumbai.
SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY;
Uitvoer :
STAD | EMPLOYEE_SALARY |
PUNE | 119000 |
MUMBAI | 186500 |
Voorbeeld 5: Schrijf een query om het salaris van werknemers op te tellen uit de werknemerstabel waarvan het salaris hoger is dan 50000 of de stad omvat Oracle, FMW en groep per afdeling.
SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT;
Uitvoer:
AFDELING | EMPLOYEE_SALARY |
C# | 60000 |
FMW | 166500 |
JAVA | 168500 |
ORAKLE | 181000 |
TESTEN | 116000 |
Voorbeeld 6: Schrijf een query om het salaris van werknemers op te tellen uit de werknemerstabel met behulp van unieke steden van werknemers en groep per stad.
SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY;
Uitvoer:
STAD | EMPLOYEE_SALARY |
CHANDIGARH | 55500 |
DELHI | 115500 |
JAIPUR | 50500 |
MUMBAI | 169000 |
NOIDA | 114500 |
PUNE | 121000 |
Voorbeeld 7: Schrijf een query om het salaris van werknemers op te tellen uit de werknemerstabel die een unieke afdeling en groep hebben op de afdeling.
SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Uitvoer:
AFDELING | EMPLOYEE_SALARY |
C# | 110000 |
FMW | 116000 |
JAVA | 168500 |
ORAKLE | 181000 |
TESTEN | 116000 |
Voorbeeld 8: Schrijf een vraag om het salaris van werknemers op te tellen uit de werknemerstabel en groep per stad, afdeling.
SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;
Uitvoer:
STAD | AFDELING | EMPLOYEE_SALARY |
CHANDIGARH | ORAKLE | 55500 |
DELHI | ORAKLE | 60000 |
DELHI | TESTEN | 55500 |
JAIPUR | FMW | 101000 |
MUMBAI | C# | 50000 |
MUMBAI | JAVA | 58500 |
MUMBAI | TESTEN | 60500 |
NOIDA | C# | 60000 |
NOIDA | JAVA | 54500 |
PUNE | FMW | 65500 |
PUNE | JAVA | 55500 |
PUNE | ORAKLE | 65500 |
Voorbeeld 9: Schrijf een zoekopdracht om het salaris van de werknemers uit de tabelgroep van de werknemers op te tellen volgens de stad waar het totale salaris hoger is dan 75000.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000;
Uitvoer:
STAD | SALARIS |
DELHI | 115500 |
JAIPUR | 101000 |
MUMBAI | 169000 |
NOIDA | 114500 |
PUNE | 186500 |
Zoals we kunnen zien, heeft het alleen steden met een totaalsalaris van meer dan 75000.
Voorbeeld 10: Schrijf een vraag om het salaris van een werknemer op te tellen met een laptop en groep door de afdeling.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Uitvoer:
AFDELING | SALARIS |
C# | 60000 |
JAVA | 113000 |
ORAKLE | 60000 |
TESTEN | 55500 |
Voorbeeld 11: Schrijf een zoekopdracht om het salaris van werknemers op te tellen met laptop en groep per afdeling waar het totale salaris hoger is dan 58000.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000;
Uitvoer:
AFDELING | SALARIS |
C# | 60000 |
JAVA | 113000 |
ORAKLE | 60000 |