PostgreSQL SUM функция
СУММА функция
Функция SUM в PostgreSQL возвращает сумму значений для списка выбранных столбцов.
Синтаксис
SUM (* | [DISTINCT] ALL | column_name)
параметры
название | Описание |
---|---|
column_name | Наименование столбца |
* | Звездочкой (*) обозначены все строки. |
DISTINCT | Этот пункт не является обязательным. Это указывает на уникальность. |
ВСЕ | Этот пункт не является обязательным. Это предложение по умолчанию. |
Содержание:
Пример функции PostgreSQL SUM
Образец таблицы
Если мы хотим рассчитать общую сумму зарплаты для всех сотрудников в таблице сотрудников , можно использовать следующий SQL.
SQL
Код:
SELECT SUM(salary)
FROM employee;
Выход:
Иллюстрированная презентация PostgreSQL SUM ()
PostgreSQL SUM как уровень
Если мы хотим рассчитать общую сумму заработной платы для всех сотрудников и показать результат в сравнении с заголовком «Общая заработная плата» в таблице сотрудников , можно использовать следующий SQL.
SQL
Код:
SELECT SUM(salary) AS "Total Salary"
FROM employee;
Выход:
PostgreSQL SUM DISTINCT
Если мы хотим получить сумму уникального оклада из таблицы сотрудников , можно использовать следующий SQL.
SQL
Код:
SELECT SUM ( DISTINCT salary)
FROM employee;
Выход:
объяснение
Приведенный выше пример показывает, что сумма зарплаты меньше, чем сумма зарплаты для всех сотрудников, потому что предложение DISTINCT исключает повторение каждой зарплаты и суммируется только один раз.
Предложение PostgreSQL SUM WHERE
Если мы хотим получить сумму уникального оклада из таблицы сотрудника, которая принадлежит группе deptno 15, можно использовать следующий SQL.
SQL
Код:
SELECT SUM ( DISTINCT salary) AS "Total Salary"
FROM employee
WHERE deptno=15;
Выход:
Иллюстрированная презентация PostgreSQL SUM с WHERE
PostgreSQL SUM с GROUP BY
Пример таблицы: сотрудники
Следующее утверждение возвратит обозначение и общую зарплату против каждого обозначения из таблицы сотрудников .
SQL
Код:
SELECT job_id,SUM(salary) AS "Total Salary"
FROM employees
GROUP BY job_id;;
Пример вывода:
job_id | Общая зарплата ------------ + -------------- AC_ACCOUNT | 8300,00 ST_MAN | 36400,00 IT_PROG | 28800,00 SA_MAN | 61000,00 AD_PRES | 24000,00 AC_MGR | 12000,00 FI_MGR | 12000,00 AD_ASST | 4400,00 MK_MAN | 13000,00 PU_CLERK | 13900,00 HR_REP | 6500,00 PR_REP | 10000,00 FI_ACCOUNT | 39600,00 SH_CLERK | 64300,00 AD_VP | 34000,00 SA_REP | 250500,00 ST_CLERK | 55700,00 MK_REP | 6000,00 PU_MAN | 11000,00 (19 рядов)
Иллюстрированная презентация PostgreSQL SUM с GROUP BY
PostgreSQL СУММА с ГЛАВНОЙ ОГОВОРКОЙ и GROUP BY
Пример таблицы: сотрудники
Следующее утверждение будет возвращать указанную мудрую общую зарплату для того назначения, зарплата которого не превышает 12000 и выше, из таблицы сотрудников .
SQL
Код:
SELECT job_id,SUM(salary) AS "Total Salary"
FROM employees
WHERE salary<12000
GROUP BY job_id;
Пример вывода:
job_id | Общая зарплата ------------ + -------------- AC_ACCOUNT | 8300,00 ST_MAN | 36400,00 IT_PROG | 28800,00 SA_MAN | 21500,00 AD_ASST | 4400,00 PU_CLERK | 13900,00 HR_REP | 6500,00 PR_REP | 10000,00 FI_ACCOUNT | 39600,00 SH_CLERK | 64300,00 SA_REP | 250500,00 ST_CLERK | 55700,00 MK_REP | 6000,00 PU_MAN | 11000,00 (14 рядов)
PostgreSQL SUM с клаузулой клаузулы и GROUP BY
Пример таблицы: сотрудники
В следующем операторе SQL будет указано общее количество сотрудников и общая зарплата для этого назначения, зарплата которого не превышает 12000 и выше, и как минимум пять сотрудников имеют это назначение.
SQL
Код:
SELECT job_id,COUNT(*) AS "Number of Employees",
SUM(salary) AS "Total Salary"
FROM employees
WHERE salary<12000
GROUP BY job_id
HAVING COUNT(*)>=5;
Пример вывода:
job_id | Количество работников | Общая зарплата ------------ + --------------------- + -------------- ST_MAN | 5 | 36400,00 IT_PROG | 5 | 28800,00 PU_CLERK | 5 | 13900,00 FI_ACCOUNT | 5 | 39600,00 SH_CLERK | 20 | 64300,00 SA_REP | 30 | 250500,00 ST_CLERK | 20 | 55700,00 (7 рядов)
Иллюстрированная презентация PostgreSQL SUM с HAVING
PostgreSQL SUM с GROUP BY и ORDER BY
Пример таблицы: сотрудники
Приведенное ниже утверждение вернет обозначение: общая численность работников и общая заработная плата, упорядоченные в порядке убывания в соответствии с общим числом работников, для обозначения, зарплата которого не превышает 12000 и выше, и как минимум пять сотрудников имеют это обозначение.
SQL
Код:
SELECT job_id,COUNT(*) AS "Number of employees" ,
SUM(salary) AS "Total Salary"
FROM employees
WHERE salary<12000
GROUP BY job_id
HAVING COUNT(*)>=5
ORDER BY COUNT(*) DESC;
Пример вывода:
job_id | Количество сотрудников | Общая зарплата ------------ + --------------------- + -------------- SA_REP | 30 | 250500,00 SH_CLERK | 20 | 64300,00 ST_CLERK | 20 | 55700,00 ST_MAN | 5 | 36400,00 FI_ACCOUNT | 5 | 39600,00 IT_PROG | 5 | 28800,00 PU_CLERK | 5 | 13900,00 (7 рядов)
Новый контент: Composer: менеджер зависимостей для PHP , R программирования