Функцията SQL Sum() е агрегатна функция в SQL, която връща общите стойности на израз. Изразът може да е числов или може да е израз.
Синтаксис:
SELECT SUM(columnname) FROM table_name WHERE conditions;
Помислете за съществуващите таблици, които имат следните записи:
Таблица:Служители
ИДЕНТИФИКАТОР НА СЛУЖИТЕЛЯ | FIRST_NAME | LAST_NAME | ЗАПЛАТА | ГРАД | ОТДЕЛ | MANAGERID |
1001 | VAIBHAVI | МИШРА | 65500 | ПУНА | ORACLE | 1 |
1002 | VAIBHAV | ШАРМА | 60 000 | NOIDA | C# | 5 |
1003 | НИХИЛ | VANI | 50500 | ДЖАЙПУР | FMW | 2 |
2001 | PRACHI | ШАРМА | 55500 | ЧАНДИГАР | ORACLE | 1 |
2002 | BHAVESH | ДЖЕЙН | 65500 | ПУНА | FMW | 2 |
2003 | РУЧИКА | ДЖЕЙН | 50 000 | МУМБАЙ | C# | 5 |
3001 | PRANOTI | ШЕНДЕ | 55500 | ПУНА | JAVA | 3 |
3002 | ANUJA | WANRE | 50500 | ДЖАЙПУР | FMW | 2 |
3003 | DEEPAM | ДЖАУХАРИ | 58500 | МУМБАЙ | JAVA | 3 |
4001 | РАДЖЕШ | GOUD | 60500 | МУМБАЙ | ТЕСТВАНЕ | 4 |
4002 | ASHWINI | BAGHAT | 54500 | NOIDA | JAVA | 3 |
4003 | РУЧИКА | AGARWAL | 60 000 | ДЕЛХИ | ORACLE | 1 |
5001 | АРХИТ | ШАРМА | 55500 | ДЕЛХИ | ТЕСТВАНЕ | 4 |
Пример 1: Напишете заявка, която сумира общата заплата на служителите от таблицата на служителите.
SELECT SUM (SALARY) AS 'SALARY' FROM EMPLOYEES;
Изразът Sum ще покаже сумата от общата заплата. s
Изход:
ЗАПЛАТА |
742000 |
Пример 2: Напишете заявка за сумиране на заплатата на служителите, чийто град е Пуна, от таблицата на служителите.
SELECT CITY, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE CITY = 'PUNE';
Тази заявка ще направи сума от заплатата на служителите, чийто град е Пуна.
Изход:
ГРАД | ЗАПЛАТА |
ПУНА | 186500 |
Пример 3: Напишете заявка за сумиране на заплатата на служителите от таблицата на служителите на служителите, чийто отдел е Oracle.
SELECT DEPARTMENT, SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT = 'ORACLE';
Изход:
ОТДЕЛ | ЗАПЛАТА |
ORACLE | 181000 |
Пример 4: Напишете заявка за сумиране на заплатата на служителите от таблицата на служителите, чийто отдел включва oracle и FMW.
SELECT SUM(SALARY) AS 'SALARY' FROM EMPLOYEES WHERE DEPARTMENT IN ('ORACLE', 'FMW');
Изход:
ЗАПЛАТА |
347500 |
Пример 4: Напишете заявка за сумирана заплата на служителите от таблицата на служителите, чиято заплата е по-голяма от 50 000 и градът включва Пуна и Мумбай.
SELECT CITY, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 AND CITY IN ('PUNE', 'MUMBAI') GROUP BY CITY;
Изход :
ГРАД | РАБОТА_ЗАПЛАТА |
ПУНА | 119 000 |
МУМБАЙ | 186500 |
Пример 5: Напишете заявка за сумиране на заплатата на служителите от таблицата на служителите, чиято заплата е по-голяма от 50 000 или градът включва Oracle, FMW и група от отдела.
SELECT DEPARTMENT, SUM(SALARY) AS EMPLOYEE_SALARY FROM EMPLOYEES WHERE SALARY > 50000 OR DEPARTMENT IN ('ORACLE', 'FMW') GROUP BY DEPARTMENT;
Изход:
ОТДЕЛ | РАБОТА_ЗАПЛАТА |
C# | 60 000 |
FMW | 166500 |
JAVA | 168500 |
ORACLE | 181000 |
ТЕСТВАНЕ | 116 000 |
Пример 6: Напишете заявка за сумиране на заплатата на служителите от таблицата на служителите, като използвате уникални градове на служителите и група по град.
SELECT CITY, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY;
Изход:
ГРАД | РАБОТА_ЗАПЛАТА |
ЧАНДИГАРХ | 55500 |
ДЕЛХИ | 115500 |
ДЖАЙПУР | 50500 |
МУМБАЙ | 169 000 |
NOIDA | 114500 |
ПУНА | 121 000 |
Пример 7: Напишете заявка за сумиране на заплатата на служителите от таблицата на служителите, които имат уникален отдел и група по отдел.
SELECT DEPARTMENT, SUM(DISTINCT SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY DEPARTMENT;
Изход:
ОТДЕЛ | РАБОТА_ЗАПЛАТА |
C# | 110 000 |
FMW | 116 000 |
JAVA | 168500 |
ORACLE | 181000 |
ТЕСТВАНЕ | 116 000 |
Пример 8: Напишете заявка за сумиране на заплатата на служителите от таблицата на служителите и групата по град, отдел.
SELECT CITY, DEPARTMENT, SUM(SALARY) AS 'EMPLOYEE_SALARY' FROM EMPLOYEES GROUP BY CITY, DEPARTMENT;
Изход:
ГРАД | ОТДЕЛ | РАБОТА_ЗАПЛАТА |
ЧАНДИГАРХ | ORACLE | 55500 |
ДЕЛХИ | ORACLE | 60 000 |
ДЕЛХИ | ТЕСТВАНЕ | 55500 |
ДЖАЙПУР | FMW | 101 000 |
МУМБАЙ | C# | 50 000 |
МУМБАЙ | JAVA | 58500 |
МУМБАЙ | ТЕСТВАНЕ | 60500 |
NOIDA | C# | 60 000 |
NOIDA | JAVA | 54500 |
ПУНА | FMW | 65500 |
ПУНА | JAVA | 55500 |
ПУНА | ORACLE | 65500 |
Пример 9: Напишете заявка за сумиране на заплатата на служителите от групата таблица на служителите по града, в който общата заплата е по-голяма от 75 000.
SELECT CITY, SUM(SALARY) AS SALARY FROM EMPLOYEES GROUP BY CITY HAVING SUM(SALARY) > 75000;
Изход:
ГРАД | ЗАПЛАТА |
ДЕЛХИ | 115500 |
ДЖАЙПУР | 101 000 |
МУМБАЙ | 169 000 |
NOIDA | 114500 |
ПУНА | 186500 |
Както виждаме, има само градове, чиято обща заплата е по-голяма от 75 000.
Пример 10: Напишете заявка за сумиране на заплатата на служител с лаптоп и групиране от отдела.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT;
Изход:
ОТДЕЛ | ЗАПЛАТА |
C# | 60 000 |
JAVA | 113 000 |
ORACLE | 60 000 |
ТЕСТВАНЕ | 55500 |
Пример 11: Напишете заявка за сумиране на заплатата на служителите с лаптоп и група по отдела, където общата заплата е по-голяма от 58 000.
SELECT DEPARTMENT, SUM(SALARY) AS SALARY FROM EMPLOYEES WHERE EMPLOYEEID IN (SELECT EMPLOYEEID FROM LAPTOP) GROUP BY DEPARTMENT HAVING SUM(SALARY) > 58000;
Изход:
ОТДЕЛ | ЗАПЛАТА |
C# | 60 000 |
JAVA | 113 000 |
ORACLE | 60 000 |