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
В этом учебном материале вы узнаете, как использовать 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.
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
The SQL SUM function can be used to add numbers together. Learn how to use it and see some examples in this article.
What is the SQL SUM Function?
The SUM function is used to add up the numbers in a specified column and return the total. It’s part of the SQL Standard so it’s available in all major databases (including Oracle, SQL Server, MySQL, and PostgreSQL).
It’s a common function when working with databases and often one of the first that we learn about.
You can use it as an aggregate function, which adds all of the numbers together, or as an analytic function, which adds numbers for specific groups together. We’ll see examples of both in this article
SQL SUM Syntax
Just like with the MAX function, you can use the SUM function as an aggregate function or an analytic function.
The syntax of SUM as an aggregate function is:
SUM ( [DISTINCT/ALL] expression)
The syntax of SUM as an aggregate function is:
SUM ( [DISTINCT/ALL] expression) OVER (analytic_clause)
Almost every time I’ve seen SUM used has been as an aggregate function.
Parameters
The parameters of the SUM function are:
- expression (mandatory): The expression that is being included or looked at for the SUM function. This can be a column name, a set of values, or any other kind of valid SQL expression.
- analytic_clause (optional): This is used when you’re using the SUM function as an analytic function. It works similar to grouping your SUM function, but it’s a bit different.
Here are some examples of the SUM function. I find that examples are the best way for me to learn about code, even with the explanation above.
First, let’s have a look at the STUDENT table which we’ll be using in this example.
SELECT * FROM student;
Result:
STUDENT_ID | FIRST_NAME | LAST_NAME | FEES_REQUIRED | FEES_PAID | ENROLMENT_DATE |
1 | John | Smith | 500 | 100 | 01/FEB/2021 |
2 | Susan | Johnson | 150 | 150 | 12/JAN/2021 |
3 | Tom | Capper | 350 | 320 | 06/MAR/2021 |
4 | Mark | Holloway | 500 | 410 | 20/JAN/2021 |
5 | Steven | Webber | 100 | 80 | 09/MAR/2021 |
6 | Julie | Armstrong | 100 | 0 | 12/FEB/2021 |
7 | Michelle | Randall | 250 | 23/JAN/2021 | |
8 | Andrew | Cooper | 800 | 400 | 04/MAR/2021 |
9 | Robert | Pickering | 110 | 100 | 30/JAN/2021 |
10 | Tanya | Hall | 150 | 150 | 28/JAN/2021 |
Example 1 – Simple SUM
This example shows a simple SUM function on the entire table.
SELECT SUM(fees_paid)
FROM student;
Result:
SUM(FEES_PAID) |
1710 |
This is the total of all fees_paid values in the table. The column header is the function and column, which isn’t easy to work with. Let’s see how we can improve that with a column alias in the next example.
Example 2 – Simple SUM with Alias
This example shows a simple SUM function on the entire table with a column alias.
SELECT SUM(fees_paid) AS SUM_FEES_PAID
FROM student;
Result:
SUM_FEES_PAID |
1710 |
This is the total of all fees_paid values in the table.
Example 3 – SUM with WHERE
This example uses the WHERE clause to only shoe the SUM of fees_paid where it is not equal to fees_required.
SELECT SUM(fees_paid) AS SUM_FEES_PAID
FROM student
WHERE fees_paid <> fees_required;
Result:
SUM_FEES_PAID |
1410 |
Example 4 – SUM with GROUP BY
This example shows how to use the SUM function with GROUP BY.
SELECT EXTRACT(MONTH FROM enrolment_date) AS ENROLMENT_MONTH,
SUM(fees_paid) AS SUM_FEES_PAID
FROM student
GROUP BY EXTRACT(MONTH FROM enrolment_date);
Result:
ENROLMENT_MONTH | SUM_FEES_PAID |
1 | 810 |
2 | 100 |
3 | 800 |
It uses the EXTRACT function to get the enrolment month, and then group by this value. It finds the SUM of fees_paid for each enrolment month.
Example 5 – SUM with a Formula
This example uses a formula within the SUM function to find out how much tax is needed, based on a 10% tax rate.
SELECT SUM(fees_paid) AS SUM_FEES_PAID,
SUM(fees_paid * 0.1) AS SUM_TAX
FROM student;
Result:
SUM_FEES_PAID | SUM_TAX |
1710 | 171 |
Example 6 – SUM with Multiple Columns
This example uses the SUM function on multiple columns
SELECT SUM(fees_required - fees_paid) AS FEES_OWING
FROM student;
Result:
FEES_OWING |
1050 |
Example 7 – SUM with OVER, or SUM as an Analytic Function
This example uses the SUM OVER PARTITION BY to show how SUM can be used as an analytic function.
SELECT
first_name,
last_name,
EXTRACT(MONTH FROM enrolment_date) AS ENROLMENT_MONTH,
SUM(fees_paid) OVER (PARTITION BY (EXTRACT(MONTH FROM enrolment_date))) AS FEES_MONTH
FROM student;
Result;
FIRST_NAME | LAST_NAME | ENROLMENT_MONTH | FEES_MONTH |
Robert | Pickering | 1 | 810 |
Susan | Johnson | 1 | 810 |
Mark | Holloway | 1 | 810 |
Tanya | Hall | 1 | 810 |
Michelle | Randall | 1 | 810 |
John | Smith | 2 | 100 |
Julie | Armstrong | 2 | 100 |
Andrew | Cooper | 3 | 800 |
Tom | Capper | 3 | 800 |
Steven | Webber | 3 | 800 |
The SUM value is the sum of all fees_paid for the enrolment month, as shown earlier. It is shown for each student, so it is repeated several times.
Example 8 – SUM DISTINCT
This example shows how you can use the SUM function with DISTINCT.
SELECT SUM(fees_paid) AS SUM_ALL_FEES,
SUM(DISTINCT fees_paid) AS SUM_DISTINCT_FEES
FROM student;
Result:
SUM_ALL_FEES | SUM_DISTINCT_FEES |
1710 | 1460 |
The results show the SUM function with and without the DISTINCT keyword.
What Does SUM OVER or SUM OVER PARTITION Do?
There is a clause on the SUM function called OVER. This allows you to use it as an analytic function.
What does that even mean?
It means you can perform the SUM function on a group of records, separate from a GROUP BY statement.
For example, you may want to list all employees, their salary, and the SUM of the salary values for all employees in their department. This is what the OVER clause can let you do.
Can You SUM DISTINCT Values?
Yes, you can SUM the DISTINCT values.
SELECT SUM(DISTINCT col) would SUM the distinct values of col. This may be what you are looking for.
If you want to SUM one column based on the distinct values of another column, you may want to use a subquery to get the distinct values, and then perform a SUM.
See the Examples section for an example of how to use SUM with distinct values.
Do You Need To Use GROUP BY with SUM?
Not always. You only need to use it if you are selecting fields that are not included in the aggregate function.
So, if you are just using SELECT SUM(col), then you don’t need a group by.
If you are using SELECT col1, SUM(col2) then you need to group by col1.
Can You SUM Multiple Columns?
Yes, you can perform the SUM function on multiple columns.
You can include them within the SUM function, such as SUM(col1 + col2).
See the Examples section for more information.
Similar Functions
Some functions which are similar to the SUM function are:
- MIN – This function gets the lowest of the supplied expression. It’s the opposite of the MAX function.
- MAX – This function gets the highest of the supplied expression. It’s the opposite of the MIN function.
- AVG – This function gets the average value of a supplied expression.
- COUNT – This function counts the values supplied.
You can find a full list of Oracle SQL functions here. Other function lists are coming soon.
This SQL tutorial explains how to use the SQL SUM function with syntax and examples.
Description
The SQL SUM function is used to return the sum of an expression in a SELECT statement.
Syntax
The syntax for the SUM function in SQL is:
SELECT SUM(aggregate_expression) FROM tables [WHERE conditions];
OR the syntax for the SUM function when grouping the results by one or more columns is:
SELECT expression1, expression2, ... expression_n, SUM(aggregate_expression) FROM tables [WHERE conditions] GROUP BY expression1, expression2, ... expression_n;
Parameters or Arguments
- expression1, expression2, … expression_n
- Expressions that are not encapsulated within the SUM function and must be included in the GROUP BY clause at the end of the SQL statement.
- aggregate_expression
- This is the column or expression that will be summed.
- tables
- The tables that you wish to retrieve records from. There must be at least one table listed in the FROM clause.
- WHERE conditions
- Optional. These are conditions that must be met for the records to be selected.
Example — With Single Expression
For example, you might wish to know how the combined total salary of all employees whose salary is above $25,000 / year.
SELECT SUM(salary) AS "Total Salary" FROM employees WHERE salary > 25000;
In this SQL SUM Function example, we’ve aliased the SUM(salary) expression as «Total Salary». As a result, «Total Salary» will display as the field name when the result set is returned.
Example — Using SQL DISTINCT
You can use the SQL DISTINCT clause within the SQL SUM function. For example, the SQL SELECT statement below returns the combined total salary of unique salary values where the salary is above $25,000 / year.
SELECT SUM(DISTINCT salary) AS "Total Salary" FROM employees WHERE salary > 25000;
If there were two salaries of $30,000/year, only one of these values would be used in the SQL SUM function.
Example — Using Formula
The expression contained within the SQL SUM function does not need to be a single field. You could also use a formula. For example, you might want the net income for a business. Net Income is calculated as total income less total expenses.
SELECT SUM(income - expenses) AS "Net Income" FROM gl_transactions;
You might also want to perform a mathematical operation within the SQL SUM function. For example, you might determine total commission as 10% of total sales.
SELECT SUM(sales * 0.10) AS "Commission" FROM order_details;
Example — Using SQL GROUP BY
In some cases, you will be required to use the SQL GROUP BY clause with the SQL SUM function.
For example, you could also use the SQL SUM function to return the name of the department and the total sales (in the associated department).
SELECT department, SUM(sales) AS "Total sales" FROM order_details GROUP BY department;
Because you have listed one column in your SQL SELECT statement that is not encapsulated in the SQL SUM function, you must use the SQL GROUP BY clause. The department field must, therefore, be listed in the SQL GROUP BY section.