Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
voprosy_k_ekzamenu_BD.doc
Скачиваний:
57
Добавлен:
18.04.2015
Размер:
645.12 Кб
Скачать

Вопрос 22 Агрегатные функции MySql

Функции, применяемые совместно с конструкцией GROUP BY, часто называют агрегатными или суммирующими функциями. Они предназначены для вычисления одного значения для каждой группы, создаваемой конструкцией GROUP BY. Агрегатные функции позволяют определить количество строк, входящих в группу, подсчитать среднее значение или получить сумму значений столбцов. Результирующее значение рассчитывается только для значений, не равных NULL(исключение составляет лишь функция COUNT(*), которая подсчитывает общее количество строк). Данные функции допустимо использовать и в запросах без группировки: в этом случае вся выборка выступает как одна большая группа.

Таблица. Агрегатные функции MySQL

Функция

Описание

AVG([DISTINCT] expr)

Возвращает среднее значение аргумента expr

BIT_AND(expr)

Возвращает побитовое И для всех битов в expr

BIT_OR(expr)

Возвращает побитовое ИЛИ для всех битов в expr

BIT_XOR(expr)

Возвращает исключающее побитовое ИЛИ для всех битов в expr

COUNT(expr) COUNT(*) COUNT(DISTINCT expr1, expr2, . . .)

Подсчитывает количество записей в expr

GROUP_CONCAT(expr)

Объединяет значения отдельных групп, полученных в результате применения конструкции GROUP BY, в одну строку

MIN([DISTINCT] expr)

Возвращает минимальное значение среди всех непустых значений выбранных строк в столбце expr

MAX([DISTINCT] expr)

Возвращает максимальное значение среди всех непустых значений выбранных строк в столбце expr

STD(expr) STDDEV(expr) STDDEV_POP(expr)

Возвращает стандартное среднеквадратичное отклонение значения в аргументе expr

STDDEV_SAMP()

Возвращает выборочное среднеквадратичное отклонение expr

SUM([DISTINCT] expr)

Возвращает сумму величин в столбце expr

VAR_POP(expr) VARIANCE(expr)

Возвращает стандартное отклонение значения в столбце expr

VAR_SAMP(expr)

Возвращает выборочное отклонение значения в аргументе expr

Среднее значение

Функция AVG() возвращает среднее значение аргумента expr. В качестве аргумента обычно выступает имя столбца. Необязательное ключевое слово DISTINCT позволяет дать указание СУБД MySQL обрабатывать только уникальные значения столбца expr.

Для примера, создадим таблицу catalogs, состоящую из трех полей: id_catalog — первичный ключ, name — название товара и total — количество единиц данного товара на складе.

Таблица catalogs

Среднее количество товарныз позиций на складе

При использовании конструкции GROUP BY функция AVG() вычисляет среднее значение для каждой группы товаров. Создадим новую таблицу products, в которой хранится информация обо всех имеющихся товарах. Таблица содержит следующие поля:

  • id_product —первичный ключ;

  • name — название товара;

  • priсe — цена за единицу товара;

  • id_catalog — ссылка на раздел каталога, к которому относится товар.

Таблица products

Если сгрупперовать записи таблицы products по полю id_catalog, при помощи встроенной функции AVG() можно узнать среднюю цену по каждому из пяти разделов каталога.

Использование функции AVG() совместно с GROUP BY

Средние значения, полученные при помощи функции AVG(), могут использоваться в вычисляемых столбцах. Например, для того чтобы увеличить среднее значение для каждого раздела каталога на 20%, достаточно умножить либо столбец priсe, либо функцию AVG() на 1.2.

Использование функции AVG() в выражениях

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]