MySQL Aggregate Functions Учебник: SUM, AVG, MAX, MIN, COUNT, DISTINCT

Совокупные функции

  • Выполнение вычислений по нескольким строкам
  • Один столбец таблицы
  • И возврат одного значения.

Стандарт ИСО определяет пять (5) совокупных функций, а именно;

1) COUNT
2) SUM
3) AVG
4) MIN
5) MAX

Зачем использовать агрегатные функции.

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

> Агрегатные функции позволяют нам легко создавать обобщенные данные из нашей базы данных.

Например, из нашей базы данных myflix для управления могут потребоваться следующие отчеты

  • Наименее арендованные фильмы.
  • Большинство снятых фильмов.
  • Среднее количество, которое каждый фильм снимается в месяц.

Мы легко создаем отчеты, используя агрегатные функции.

Давайте подробно рассмотрим агрегатные функции.

Функция COUNT

Функция COUNT возвращает общее количество значений в указанном поле. Он работает как с числовыми, так и с нечисловыми типами данных. Все агрегированные функции по умолчанию исключают значения нулей перед работой над данными.

COUNT (*) – это специальная реализация функции COUNT, которая возвращает количество всех строк в указанной таблице. COUNT (*) также рассматривает Nulls и duplicates.

Таблица, показанная ниже, показывает данные в таблице movierentals

Номер ссылки Дата сделки Дата возврата Количество членов movie_id фильм вернулся
11 20-06-2012 НОЛЬ 1 1 0
12 22-06-2012 25-06-2012 1 2 0
13 22-06-2012 25-06-2012 3 2 0
14 21-06-2012 24-06-2012 2 2 0
15 23-06-2012 НОЛЬ 3 3 0

Предположим, что мы хотим получить количество раз, когда фильм с id 2 был снят с аренды

Выполнение вышеуказанного запроса в workbench MySQL в myflixdb дает нам следующие результаты.

COUNT ( ‘movie_id’)
3

DISTINCT Ключевое слово

Ключевое слово DISTINCT, которое позволяет нам опустить дубликаты из наших результатов. Это достигается объединением одинаковых значений вместе.

Чтобы оценить концепцию Distinct, давайте выполним простой запрос

movie_id
1
2
2
2
3

Теперь давайте выполним тот же запрос с ключевым словом –

Как показано ниже, отдельные опускания дублируют записи из результатов.

movie_id
1
2
3

 

Функция MIN

Функция MIN возвращает наименьшее значение в указанном поле таблицы .

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

Следующий запрос помогает нам достичь этого

 

Выполнение вышеуказанного запроса в workbench MySQL в myflixdb дает нам следующие результаты.

MIN ( ‘year_released’)
2005

Функция MAX

Как и следует из названия, функция MAX противоположна функции MIN. Он возвращает наибольшее значение из указанного поля таблицы .

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

Следующий пример возвращает последний год выпуска фильма.

Выполнение вышеуказанного запроса в workbench MySQL с использованием myflixdb дает нам следующие результаты.

MAX ( ‘year_released’)
2012

 

Функция SUM

Предположим, нам нужен отчет, который дает общий объем платежей, сделанных до сих пор. Мы можем использовать функцию СУММЫ MySQL, которая возвращает сумму всех значений в указанном столбце . SUM работает только с числовыми полями . Значения Null исключаются из возвращаемого результата.

В следующей таблице показаны данные в таблице платежей –

Идентификатор платежа_ Количество членов Дата платежа описание сумма платежа external_ reference _number
1 1 23.07.2012 Оплата проката фильма 2500 11
2 1 25-07-2012 Оплата проката фильма 2000 12
3 3 30-07-2012 Оплата проката фильма 6000 НОЛЬ

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

Выполнение вышеуказанного запроса в workbench MySQL на myflixdb дает следующие результаты.

SUM ( ‘amount_paid’)
10500

Функция AVG

Функция MySQL AVG возвращает среднее значение значений в указанном столбце . Подобно функции SUM, она работает только с числовыми типами данных .

Предположим, мы хотим найти среднюю оплаченную сумму. Мы можем использовать следующий запрос –

Выполняя вышеуказанный запрос в workbench MySQL, мы получаем следующие результаты.

AVG ( ‘amount_paid’)
3500

Резюме

  • MySQL поддерживает все пять (5) стандартных агрегатных функций ISO: COUNT, SUM, AVG, MIN и MAX.
  • Функции SUM и AVG работают только с числовыми данными.
  • Если вы хотите исключить повторяющиеся значения из результатов совокупной функции, используйте ключевое слово DISTINCT. Ключевое слово ALL включает в себя даже дубликаты. Если ничего не указано, значение ALL принимается как значение по умолчанию.
  • Совокупные функции могут использоваться в сочетании с другими предложениями SQL, такими как GROUP BY

Логические

Вы считаете, что совокупные функции легки. Попробуй это!

В следующем примере члены группы по имени подсчитывают общее количество платежей, среднюю сумму платежа и общую сумму платежей.

Выполнение приведенного выше примера в workbench MySQL дает нам следующие результаты.

0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *