В этом учебном материале вы узнаете, как использовать SQL функцию SUM с синтаксисом и примерами.
Описание
SQL функция SUM используется для возврата суммы выражения в операторе SELECT.
Синтаксис
Синтаксис для функции SUM в SQL.
SELECT SUM(aggregate_expression)
FROM tables
[WHERE conditions];
Или синтаксис для функции SUM при группировке результатов по одному или нескольким столбцам.
SELECT expression1, expression2, … expression_n,
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
- Необязательный. Это условия, которые должны быть выполнены для выбора записей
Пример – с одним выражением
Например, вы, возможно, захотите узнать, как совокупная общая зарплата всех сотрудников, чья зарплата превышает 25 000 долларов в год.
SELECT SUM(salary) AS “Total Salary” FROM employees WHERE salary > 25000; |
В этом примере SQL функции SUM мы присвоили псевдониму выражение SUM(salary) как “Total Salary”. В результате “Total Salary” будет отображаться как имя поля при возврате набора результатов.
Пример – использование SQL DISTINC
Вы можете использовать SQL предложение DISTINCT в функции SUM. Например, приведенный ниже SQL оператор SELECT возвращает совокупный общий оклад с уникальными значениями окладов, где оклад превышает 25000 $ в год.
SELECT SUM(DISTINCT salary) AS “Total Salary” FROM employees WHERE salary > 25000; |
Если бы две зарплаты составляли 30000 $ в год, в SQL функции SUM использовалось бы только одно из этих значений.
Пример – использование формул
expressions, содержащееся в SQL функции SUM, необязательно должно быть одним полем. Вы также можете использовать формулу. Например, вам может потребоваться чистый доход для бизнеса. Чистый доход рассчитывается как общий доход за вычетом общих расходов.
SELECT SUM(income – expenses) AS “Net Income” FROM gl_transactions; |
Вы также можете выполнить математическую операцию в SQL функции SUM. Например, вы можете определить общую комиссию как 10% от общего объема продаж.
SELECT SUM(sales * 0.10) AS “Commission” FROM order_details; |
Пример – использование SQL GROUP BY
В некоторых случаях вам потребуется использовать SQL оператор GROUP BY с функцией SUM.
Например, вы также можете использовать SQL функцию SUM для возврата названия отдела и общих продаж (в связанном отделе).
SELECT department, SUM(sales) AS “Total sales” FROM order_details GROUP BY department; |
Поскольку в SQL операторе SELECT указан один столбец, который не инкапсулирован в SQL функции SUM, необходимо использовать SQL оператор GROUP BY. Поэтому поле department должно быть указано в SQL операторе GROUP BY.
In this article, we will look into the process of querying the sum of all values in a column of a database table. But before finding the sum of all values in a column, let us create a table with some columns and data. In this article, we will be using the Microsoft SQL Server as our database.
Creating a table :
Use the below syntax to create a table inside the database
Syntax :
create table table_name( column_name 1 data type ( size ) , column_name 2 data type ( size) , . . . . column_name n data type ( size ) )
For the sake of illustration, we will be creating a department table and operate on the same. The department table will have 3 fields namely deptid, deptname, totalemployees. To do so use the below statement:
CREATE TABLE department( deptid integer , deptname varchar(20) , totalemployees integer );
This will create the table. To insert values into the table we need to use the INSERT statement. So let us see add some data to the department table that we created:
Note: We have to insert values according to the table created. For example, we created a department table with deptid as integer, deptname as varchar, and totalemployees as an integer. So, we need to insert an integer, a character, and an integer respectively.
Now let us insert some rows into the department table using the below query:
INSERT INTO department values(1,'IT',32); INSERT INTO department values(2,'CSE',56); INSERT INTO department values(1,'ECE',28);
Output:
Following the same pattern we have inserted some rows into the table, now let us print the data available in the table using the SELECT statement as shown below:
SELECT * FROM department;
Note: Here * represents all. If we execute this query, the entire table will be displayed.
Output :
Sum of all values in a column:
- For this, we need to use the sum() function. We have to pass the column name as a parameter.
- This sum() function can be used with the SELECT query for retrieving data from the table.
- The below example shows to find the sum of all values in a column.
Example :
SELECT SUM(totalemployees) FROM department;
Output :
Conclusion: Using the sum() function we can get the sum of values in a column using the column name.
Last Updated :
13 Apr, 2021
Like Article
Save Article
script1adsense2code
script1adsense3code
SUM () функция
Функция SQL AGGREGATE SUM () возвращает сумму всех выбранных столбцов.
Синтаксис:
СУММА (выражение [ALL | DISTINCT])
Поддержка СУБД: функция SUM ()
СУБД | команда |
MySQL | поддержанный |
PostgreSQL | поддержанный |
SQL Server | поддержанный |
оракул | поддержанный |
Синтаксис DB2 и Oracle:
SUM ([ALL | DISTINCT] выражение) OVER (window_clause)
Параметры:
название | Описание |
---|---|
ВСЕ | Относится ко всем значениям. |
DISTINCT | Вернуть сумму уникальных значений. |
выражение | Выражение состоит из одной константы, переменной, скалярной функции или имени столбца. Выражение является выражением категории точных числовых или приблизительных числовых типов данных, за исключением типа битовых данных. Агрегатные функции и подзапросы не допускаются. |
Синтаксическая диаграмма – функция SUM ()
SQL SUM () на конкретном примере столбца
Чтобы получить общую сумму ‘advance_amount’ таблицы ‘orders’, можно использовать следующий оператор SQL:
Пример таблицы: заказы
Код SQL:
SELECT SUM(advance_amount)
FROM orders;
Выход:
СУММА (ADVANCE_AMOUNT) ------------------- 19450
Иллюстрированная презентация:
SQL SUM () на примере нескольких столбцов
Чтобы получить сумму значений ‘creation_amt’ и ‘receive_amt’ из таблицы ‘customer’, можно использовать следующий оператор SQL:
Образец таблицы: клиент
Код SQL:
SELECT SUM (opening_amt + receive_amt)
FROM customer;
Выход:
СУММА (OPENING_AMT + RECEIVE_AMT) ---------------------------- 353000
SQL SUM () с где
В следующем примере мы обсудили использование предложения WHERE вместе с функцией SQL SUM () для суммирования одного или нескольких столбцов в соответствии с одним или несколькими условиями.
Пример:
Чтобы получить общую сумму ‘advance_amount’ таблицы ‘orders’ при следующем условии –
1. ‘agent_code’ должен быть ‘A003’,
можно использовать следующий оператор SQL:
Пример таблицы: заказы
Код SQL:
SELECT SUM (advance_amount)
FROM orders
WHERE agent_code ='A003';
Выход:
СУММА (ADVANCE_AMOUNT) ------------------- 1000
SQL SUM () с COUNT ()
В следующем примере мы обсудили использование SQL SUM () и SQL COUNT () вместе в операторе SQL SELECT. В связи с этим следует отметить, что SQL SUM () и SQL COUNT () оба возвращают одну строку.
Пример:
Чтобы получить данные ‘cust_country’, СУММ ‘opens_amt’ для каждого ‘cust_country’ и номера ‘cust_country’ из таблицы ‘customer’ при следующем условии –
1. данные должны быть группой ‘cust_country’,
можно использовать следующий оператор SQL:
Образец таблицы: клиент
Код SQL:
SELECT cust_country, SUM(opening_amt),
COUNT(cust_country)
FROM customer
GROUP BY cust_country;
Выход:
CUST_COUNTRY SUM (OPENING_AMT) COUNT (CUST_COUNTRY) -------------------- ---------------- -------------- ----- США 18000 4 Индия 73000 10 Австралия 19000 3 Канада 25000 3 Великобритания 26000 5
Примечание. Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 10g Express Edition.
Вот слайд-презентация всех агрегатных функций.
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL СОЕДИНЯЕТСЯ [29 упражнений]
- SQL присоединяется к базе данных HR [27 упражнений]
- SQL ПОДПИСИ
- ПОДПИСИ SQL [39 упражнений]
- SQL ПОДПИСИ по базе данных HR [55 упражнений]
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- ПРИСОЕДИНЯЕТСЯ к запросам по футбольной базе данных [61 упражнений]
- База данных больницы
- Вступление
- ОСНОВНЫЕ, ПОДПИСИ И СОЕДИНЕНИЯ [39 упражнений]
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущий: COUNT Имея и Группировать по
Далее: СУММА с использованием GROUP BY
Агрегатные функции
Когда нам нужно получить сумму, максимальное, минимальное или среднее значение хранящихся в базе данных чисел, то мы используем агрегатные функции. Большинство систем управления базами данных поддерживают 5 агрегатных (математических) функций.
SUM рассчитывает сумму
Вычислим сумму полей «Quantity» в таблице «OrderDetails».
Пишем слово SELECT, а затем название агрегатной функции SUM(). В скобках указываем, значения какого столбца мы хотим суммировать. Дальше пишем оператор FROM и имя таблицы.
SELECT SUM(Quantity)
FROM OrderDetails;
Функция SUM() вернула общую сумму указанного столбца.
MAX рассчитывает максимальное значение
Найдем с помощью оператора MAX() самую большую стоимость продукта.
SELECT MAX(Price)
FROM Products;
Функция MAX нашла цену самого дорогого продукта в столбце Price из таблицы Products.
MIN рассчитывает минимальное значение
Найдем с помощью оператора MIN() самую маленькую стоимость продукта.
SELECT MIN(Price)
FROM Products;
Функция MIN нашла цену самого дешевого продукта в столбце Price из таблицы Products.
COUNT подсчитывает количество значений
Функция COUNT() возвращает количество строк, которое соответствует заданному критерию. Давайте выведем общее количество товаров, хранящихся в базе данных. Проще всего подсчитать количество продуктов по ID.
SELECT COUNT(ProductID)
FROM Products;
AVG рассчитывает среднее значение
Функция AVG() возвращает среднее значение чисел в указанном столбце.
SELECT AVG(Price)
FROM Products;
Группировка данных Group By
Ключевое слово Group By чаще всего используется вместе с агрегатными функциями, чтобы группировать столбцы по тому или иному признаку. Например, нам нужно подсчитать количество клиентов в базе из каждой страны по отдельности.
Пишем оператор SELECT и рассчитываем количество клиентов по столбцу CustomerID для каждой страны и группируем результат расчета по странам. Например из Аргентины у нас 3 клиента, а из Бельгии – 2 клиента.
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
Упорядочим наш список и отсортируем клиентов в порядке убывания. Нам нужно знать, в каких странах живет всех больше клиентов.
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
Всех больше клиентов проживает в USA.
-
Создано 30.04.2021 10:11:41
-
Михаил Русаков
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
-
Кнопка:
Она выглядит вот так:
-
Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт
- BB-код ссылки для форумов (например, можете поставить её в подписи):
Summary: in this tutorial, we will introduce you to the SQL SUM function that calculates the sum of all or distinct values.
Introduction to the SQL SUM function
The SQL SUM function is an aggregate function that returns the sum of all or distinct values. We can apply the SUM function to the numeric column only.
The following illustrates the syntax of the SUM function.
SUM([ALL|DISTINCT] expression)
Code language: SQL (Structured Query Language) (sql)
The ALL operator allows you to apply the aggregate to all values. The SUM function uses the ALL operator by default.
For example, if you have a set of (1,2,3,3,NULL). The SUM function returns 9. Note that the SUM function ignores NULL values.
To calculate the sum of unique values, you use the DISTINCT operator e.g., the SUM(DISTINCT) of the set (1,2,3,3,NULL) is 6.
SQL SUM function examples
We will use the employees
table below for the demonstration purposes.
To get the sum of salaries of all employees, we apply the SUM function to the salary column as the following query:
SELECT SUM(salary) FROM employees;
Code language: SQL (Structured Query Language) (sql)
Try It
To calculate the sum of salaries of employees who work in department id 5, we add a WHERE clause to the query above as follows:
Code language: SQL (Structured Query Language) (sql)
SELECT SUM(salary) FROM employees WHERE department_id = 5;
Try It
SQL SUM with GROUP BY clause example
We often use the SUM function in conjunction with the GROUP BY clause to calculate the sums of groups.
For example, to calculate the sum of salaries of employees for each department, we apply the SUM function to the salary
column and group the rows by department_id
column as the following query:
SELECT department_id, SUM(salary) FROM employees GROUP BY department_id;
Code language: SQL (Structured Query Language) (sql)
Try It
To include the department name in the result set, we join the employees
table with the departments
table as follows:
Code language: SQL (Structured Query Language) (sql)
SELECT e.department_id, department_name, SUM(salary) FROM employees e INNER JOIN departments d ON d.department_id = e.department_id GROUP BY e.department_id;
Try It
SQL SUM with ORDER BY clause example
Suppose we want to have the sums of salaries of departments sorted in descending order, in this case, we use the SUM function in the ORDER BY clause as follows:
Code language: SQL (Structured Query Language) (sql)
SELECT e.department_id, department_name, SUM(salary) FROM employees e INNER JOIN departments d ON d.department_id = e.department_id GROUP BY e.department_id ORDER BY SUM(salary) DESC;
Try It
SQL SUM function with HAVING clause example
To filter groups based on condition, you use the HAVING clause. If you want to filter the groups based on the result of the SUM function, you have to place the SUM function in the GROUP BY clause.
For example, if you want to get the departments and their sums of salaries greater than 3000, you use the following statement:
Code language: SQL (Structured Query Language) (sql)
SELECT e.department_id, department_name, SUM(salary) FROM employees e INNER JOIN departments d ON d.department_id = e.department_id GROUP BY e.department_id HAVING SUM(salary) > 30000 ORDER BY SUM(salary) DESC;
Try It
In this tutorial, you have learned how to use the SUM function to calculate the sum of values in a set.
Was this tutorial helpful ?