В этом учебном пособии вы узнаете, как использовать функцию SUM в SQL Server (Transact-SQL) с синтаксисом и примерами.
Описание
В SQL Server (Transact-SQL) функция SUM возвращает суммарное значение выражения.
Синтаксис
Синтаксис функции SUM в SQL Server (Transact-SQL):
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 может использоваться в следующих версиях SQL Server (Transact-SQL):
SQL Server vNext, SQL Server 2016, SQL Server 2015, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005
Пример с одним полем
Рассмотрим некоторые примеры SQL Server функции SUM, чтобы понять, как использовать функцию SUM в SQL Server (Transact-SQL).
Например, вы можете узнать, как общее количество всех products, количество которых больше 10.
1 2 3 |
SELECT SUM(quantity) AS "Total Quantity" FROM products WHERE quantity > 10; |
В этом примере функции SUM мы выражению SUM(quantity) установили псевдоним "Total Quantity". При возврате результирующего набора - "Total Quantity" будет отображаться как имя поля.
Пример использования DISTINCT
Вы можете использовать оператор DISTINCT в функции SUM. Например, приведенный ниже оператор SQL возвращает общую сумму salary с уникальными значениями salary, где salary ниже 29 000 долларов в год.
1 2 3 |
SELECT SUM(DISTINCT salary) AS "Total Salary" FROM employees WHERE salary < 29000; |
Если бы две salary составляли 24 000 долл. в год, в функции SUM использовалось только одно из этих значений.
Пример использования формулы
Выражение, содержащееся в функции SUM, не обязательно должно быть одним полем. Вы также можете использовать формулу. Например, вы можете рассчитать общую комиссию.
1 2 |
SELECT SUM(sales * 0.03) AS "Total Commission" FROM orders; |
Пример использования GROUP BY
В некоторых случаях вам потребуется использовать оператор GROUP BY с функцией SUM.
Например, вы также можете использовать функцию SUM, чтобы вернуть имя department и общее количество (в department), где количество превышает 10.
1 2 3 4 |
SELECT department, SUM(quantity) AS "Total Quantity" FROM products WHERE quantity > 10 GROUP BY department; |
Поскольку вы указали один столбец в операторе SELECT, который не входит в функции SUM, вы должны использовать предложение GROUP BY. Поэтому поле department должно быть указано в операторе GROUP BY.