Вычисление суммы столбца (SUM)

АГРЕГАТНЫЕ ФУНКЦИИ

ИТОГОВЫЕ ЗАПРОСЫ НА ЧТЕНИЕ

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

• Какова общая сумма плановых объемов продаж для всех служащих?

• Каковы наибольший и наименьший плановые объемы продаж?

• Сколько служащих перевыполнили свой план?

• Какова средняя стоимость заказа?

• Какова средняя стоимость заказа в каждом офисе?

• Сколько служащих закреплено за каждым офисом?

В SQL запросы такого типа можно создавать с помощью агрегатных функций и предложений group by и having оператора select, описанных в настоящей главе.

Для подведения итогов по информации, содержащейся в базе данных, в SQL предусмотрены агрегатные (статистические) функции. Агрегатная функция принимает в качестве аргумента какой-либо столбец данных целиком, а возвращает одно значение, которое определенным образом подытоживает этот столбец. Например, агрегатная функция avg() принимает в качестве аргумента столбец чисел и вычисляет их среднее значение. Ниже приведен запрос, в котором функция avg () используется для вычисления среднего значения в двух столбцах таблицы salesreps:

Первая агрегатная функция принимает в качестве аргументов все значения, содержащиеся в столбце quota, и вычисляет их среднее значение; вторая агрегатная функция подсчитывает среднее значение столбца sales. Результатом запроса является одна строка, представляющая итоги по информации, содержащейся в таблице salesreps.

• функция sum () вычисляет сумму всех значений, содержащихся в столбце;

• функция avg () вычисляет среднее всех значений, содержащихся в столбце;

• функция min () находит наименьшее среди всех значений, содержащихся в столбце;

• функция мах () находит наибольшее среди всех значений, содержащихся в столбце;

• функция count () подсчитывает количество значений, содержащихся в столбце;

• функция count (*) подсчитывает количество строк в таблице результатов запроса.

Аргументом агрегатной функции может быть простое имя столбца, как в предыдущем примере, или выражение, как в следующем запросе:

При выполнении этого запроса SQL создает временный столбец, содержащий значения (100 * (sales / quota)) для каждой строки таблицы salesreps, а затем вычисляет среднее значение временного столбца.

Агрегатная функция sum () вычисляет сумму всех значений, содержащихся в столбце. При этом столбец должен иметь числовой тип данных (содержать целые числа, десятичные числа, числа с плавающей запятой или денежные величины). Результат, возвращаемый этой функцией, имеет тот же тип данных, что и столбец, однако точность результата может быть выше. Например, если применить функцию sum () к столбцу, содержащему 16-разрядные целые числа, она может вернуть в качестве результата 32-разрядное целое число.

Ниже приведен ряд примеров, в которых используется агрегатная функция SUM ():


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: