Как найти сумму значений sql

В этом учебном материале вы узнаете, как использовать 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.

«SQL Последнее обновление 15 марта 2019 07:13:37 (UTC / GMT +8 часов)

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

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

Группировка

Агрегатные функции

Последнее обновление: 19.07.2017

Агрегатные функции выполняют вычисления над значениями в наборе строк. В T-SQL имеются следующие агрегатные функции:

  • AVG: находит среднее значение

  • SUM: находит сумму значений

  • MIN: находит наименьшее значение

  • MAX: находит наибольшее значение

  • COUNT: находит количество строк в запросе

В качестве аргумента все агрегатные функции принимают выражение, которое представляет критерий дя определения значений. Зачастую, в качестве
выражения выступает название столбца, над значениями которого надо проводить вычисления.

Выражения в функциях AVG и SUM должно представлять числовое значение. Выражение в функциях
MIN, MAX и COUNT может представлять числовое или строковое значение или дату.

Все агрегатные функции за исключением COUNT(*) игнорируют значения NULL.

Avg

Функция Avg возвращает среднее значение на диапазоне значений столбца таблицы.

Пусть в базе данных у нас есть таблица товаров Products, которая описывается следующими выражениями:

CREATE TABLE Products
(
    Id INT IDENTITY PRIMARY KEY,
    ProductName NVARCHAR(30) NOT NULL,
    Manufacturer NVARCHAR(20) NOT NULL,
    ProductCount INT DEFAULT 0,
    Price MONEY NOT NULL
);
 
INSERT INTO Products 
VALUES
('iPhone 6', 'Apple', 3, 36000),
('iPhone 6S', 'Apple', 2, 41000),
('iPhone 7', 'Apple', 5, 52000),
('Galaxy S8', 'Samsung', 2, 46000),
('Galaxy S8 Plus', 'Samsung', 1, 56000),
('Mi6', 'Xiaomi', 5, 28000),
('OnePlus 5', 'OnePlus', 6, 38000)

Найдем среднюю цену товаров из базы данных:

SELECT AVG(Price) AS Average_Price FROM Products

Для поиска среднего значения в качестве выражения в функцию передается столбец Price. Для получаемого значения устанавливается псевдоним Average_Price, хотя можно его и не
устанавливать.

Функция avg в T-SQL

Также мы можем применить фильтрацию. Например, найти среднюю цену для товаров какого-то определенного производителя:

SELECT AVG(Price) FROM Products
WHERE Manufacturer='Apple'

И, кроме того, мы можем находить среднее значение для более сложных выражений.
Например, найдем среднюю сумму всех товаров, учитывая их количество:

SELECT AVG(Price * ProductCount) FROM Products

Count

Функция Count вычисляет количество строк в выборке. Есть две формы этой функции.
Первая форма COUNT(*) подсчитывает число строк в выборке:

SELECT COUNT(*) FROM Products

Функция count в T-SQL в MS SQL Server

Вторая форма функции вычисляет количество строк по определенному столбцу, при этом строки со значениями NULL игнорируются:

SELECT COUNT(Manufacturer) FROM Products

Min и Max

Функции Min и Max возвращают соответственно минимальное и максимальное значение по столбцу.
Например, найдем минимальную цену среди товаров:

SELECT MIN(Price) FROM Products

Поиск максимальной цены:

SELECT MAX(Price) FROM Products

Данные функции также игнорируют значения NULL и не учитывают их при подсчете.

Sum

Функция Sum вычисляет сумму значений столбца. Например, подсчитаем общее количество товаров:

SELECT SUM(ProductCount) FROM Products

Функция SUM в T-SQL

Также вместо имени столбца может передаваться вычисляемое выражение. Например, найдем общую стоимость всех имеющихся товаров:

SELECT SUM(ProductCount * Price) FROM Products

All и Distinct

По умолчанию все вышеперечисленных пять функций учитывают все строки выборки для вычисления результата. Но выборка может содержать повторяющие значения.
Если необходимо выполнить вычисления только над уникальными значениями, исключив из набора значений повторяющиеся данные, то для
этого применяется оператор DISTINCT.

SELECT AVG(DISTINCT ProductCount) AS Average_Price FROM Products

По умолчанию вместо DISTINCT применяется оператор ALL, который выбирает все строки:

SELECT AVG(ALL ProductCount) AS Average_Price FROM Products

Так как этот оператор неявно подразумевается при отсутствии DISTINCT, то его можно не указывать.

Комбинирование функций

Объединим применение нескольких функций:

SELECT COUNT(*) AS ProdCount,
	   SUM(ProductCount) AS TotalCount,
       MIN(Price) AS MinPrice,
       MAX(Price) AS MaxPrice,
       AVG(Price) AS AvgPrice
FROM Products

Агрегатные функции в T-SQL и MS SQL Server

Добавить комментарий