В этом учебном пособии вы узнаете, как использовать Oracle/PLSQL функцию SUM с синтаксисом и примерами.
Описание
Oracle/PLSQL функция SUM возвращает суммарное значение выражения.
Синтаксис
Синтаксис Oracle/PLSQL функции SUM:
FROM tables
[WHERE conditions];
ИЛИ синтаксис для функции SUM с группировкой результатов по одному или нескольким столбцам:
SUM(aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n;
Параметры или аргументы
expression1, expression2, ... expression_n - выражения, которые не инкапсулированы в функцию SUM и должны быть включены в оператор GROUP BY в конце SQL запроса.
aggregate_expression - это столбец или выражение, которое будет суммироваться.
tables - таблицы, из которых вы хотите получить записи. В операторе FROM должна быть указана хотя бы одна таблица.
WHERE conditions - необязательный. Это условия, которые должны быть соблюдены для выбранных записей.
Функция SUM возвращает числовое значение.
Применение
Функцию SUM можно использовать в следующих версиях Oracle/PLSQL:
- Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i
Пример с одним полем
Рассмотрим несколько примеров функции SUM и изучим, как использовать функцию SUM в Oracle/PLSQL.
Например, вы, возможно, захотите узнать, какая совокупная общая заработная плата всех сотрудников, чья зарплата превышает 50000$ в год.
1 2 3 |
SELECT SUM(salary) AS "Total Salary" FROM employees WHERE salary > 50000; |
В этом примере функции SUM мы использовали псевдоним "Total Salary" для SUM(salary). В результате "Total Salary" будет отображаться в качестве имени поля при возврате результирующего набора.
Пример - использование DISTINCT
Вы можете использовать оператор DISTINCT в функции SUM. Например, приведенный ниже оператор SQL возвращает совокупный общий оклад с уникальными значениями окладов, где оклад превышает 50000$ в год.
1 2 3 |
SELECT SUM(DISTINCT salary) AS "Total Salary" FROM employees WHERE salary > 50000; |
Если бы заработная плата составляла 80000$ в год, в функции SUM использовалось бы только одно из этих значений.
Пример - использование формулы
Выражение, содержащееся в функции SUM, не обязательно должно быть одним полем. Вы также можете использовать формулу. Например, вы можете рассчитать общую комиссию.
1 2 |
SELECT SUM(sales * 0.05) AS "Total Commission" FROM orders; |
Пример - использование GROUP BY
В некоторых случаях, вам будет необходимо использовать функцию SUM в операторе GROUP BY.
Например, вы могли бы также использовать функцию SUM, чтобы вернуть название department (отдела) и SUM(sales) (общий объем продаж в соответствующем отделе).
1 2 3 4 |
SELECT department, SUM(sales) AS "Total sales" FROM order_details GROUP BY department; |
Поскольку в вашем операторе SELECT указан один столбец, который не инкапсулирован в функции SUM, то вы должны использовать оператор GROUP BY. Поэтому поле department (отдела) должно быть указано в разделе GROUP BY.