La fonction SQL Sum() est une fonction d'agrégation en SQL qui renvoie les valeurs totales d'une expression. L'expression peut être numérique ou il peut s'agir d'une expression.
Syntaxe :
SELECT SUM(columnname) FROM table_name WHERE conditions;
Considérez les tables existantes qui ont les enregistrements suivants :
Tableau :Employés
ID EMPLOYEE | FIRST_NAME | LAST_NAME | SALAIRE | VILLE | DÉPARTEMENT | MANAGERID |
1001 | VAIBHAVI | MISHRA | 65500 | PUNE | ORACLE | 1 |
1002 | VAIBHAV | SHARMA | 60000 | NOÏDA | C# | 5 |
1003 | NIKHIL | VANI | 50500 | JAIPUR | FMW | 2 |
2001 | PRACHI | SHARMA | 55500 | CHANDIGAR | ORACLE | 1 |
2002 | BHAVESH | JAIN | 65500 | PUNE | FMW | 2 |
2003 | RUCHIKA | JAIN | 50000 | Bombay | C# | 5 |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | JAIPUR | FMW | 2 |
3003 | DEEPAM | JAUHARI | 58500 | Bombay | JAVA | 3 |
4001 | RAJESH | GOUD | 60500 | Bombay | TEST | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOÏDA | JAVA | 3 |
4003 | RUCHIKA | AGARWAL | 60000 | DELHI | ORACLE | 1 |
5001 | ARCHIT | SHARMA | 55500 | DELHI | TEST | 4 |
Exemple 1 : Écrivez une requête qui additionne le salaire total des employés de la table des employés.
SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES;
L'expression Somme affichera la somme du salaire total. s
Sortie :
SALAIRE |
742000 |
Exemple 2 : Écrivez une requête pour additionner le salaire des employés dont la ville est Pune à partir de la table des employés.
SELECT CITY, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'PUNE';
Cette requête fera une somme du salaire des employés dont la ville est Pune.
Sortie :
VILLE | SALAIRE |
PUNE | 186500 |
Exemple 3 : Écrivez une requête pour additionner le salaire des employés à partir de la table des employés des employés dont le service est Oracle.
SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE';
Sortie :
DÉPARTEMENT | SALAIRE |
ORACLE | 181000 |
Exemple 4 : Écrivez une requête pour additionner le salaire des employés de la table des employés dont le service comprend oracle et FMW.
SELECT SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Sortie :
SALAIRE |
347500 |
Exemple 4 : Écrivez une requête sur le salaire total des employés de la table des employés dont le salaire est supérieur à 50 000 et dont la ville comprend Pune et Mumbai.
SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY;
Sortie :
VILLE | EMPLOYEE_SALARY |
PUNE | 119000 |
Bombay | 186500 |
Exemple 5 : Écrivez une requête pour additionner le salaire des employés de la table des employés dont le salaire est supérieur à 50 000 ou la ville inclut Oracle, FMW et le groupe par département.
SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT;
Sortie :
DÉPARTEMENT | EMPLOYEE_SALARY |
C# | 60000 |
FMW | 166500 |
JAVA | 168500 |
ORACLE | 181000 |
TEST | 116000 |
Exemple 6 : Écrivez une requête pour additionner le salaire des employés à partir de la table des employés en utilisant des villes uniques d'employés et groupez par ville.
SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY;
Sortie :
VILLE | EMPLOYEE_SALARY |
CHANDIGAR | 55500 |
DELHI | 115500 |
JAIPUR | 50500 |
Bombay | 169000 |
NOIDA | 114500 |
PUNE | 121000 |
Exemple 7 : Écrivez une requête pour additionner le salaire des employés de la table des employés qui ont un département unique et un groupe par département.
SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Sortie :
DÉPARTEMENT | EMPLOYEE_SALARY |
C# | 110000 |
FMW | 116000 |
JAVA | 168500 |
ORACLE | 181000 |
TEST | 116000 |
Exemple 8 : Rédigez une requête pour additionner le salaire des employés à partir de la table des employés et regroupez-les par ville, département.
SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;
Sortie :
VILLE | DÉPARTEMENT | EMPLOYEE_SALARY |
CHANDIGAR | ORACLE | 55500 |
DELHI | ORACLE | 60000 |
DELHI | TEST | 55500 |
JAIPUR | FMW | 101000 |
Bombay | C# | 50000 |
Bombay | JAVA | 58500 |
Bombay | TEST | 60500 |
NOIDA | C# | 60000 |
NOIDA | JAVA | 54500 |
PUNE | FMW | 65500 |
PUNE | JAVA | 55500 |
PUNE | ORACLE | 65500 |
Exemple 9 : Écrivez une requête pour additionner le salaire des employés du groupe de tables d'employés par la ville où le salaire total est supérieur à 75 000.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000;
Sortie :
VILLE | SALAIRE |
DELHI | 115500 |
JAIPUR | 101000 |
Bombay | 169000 |
NOIDA | 114500 |
PUNE | 186500 |
Comme nous pouvons le voir, il n'y a que des villes dont le salaire global est supérieur à 75000.
Exemple 10 : Rédigez une requête pour additionner le salaire d'un employé avec un ordinateur portable et groupez-le par service.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Sortie :
DÉPARTEMENT | SALAIRE |
C# | 60000 |
JAVA | 113000 |
ORACLE | 60000 |
TEST | 55500 |
Exemple 11 : Rédigez une requête pour additionner le salaire des employés avec un ordinateur portable et regrouper par département où le salaire total est supérieur à 58 000.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000;
Sortie :
DÉPARTEMENT | SALAIRE |
C# | 60000 |
JAVA | 113000 |
ORACLE | 60000 |