- •Вопрос 34
- •Вопрос 33
- •Вопрос 32 Целостность данных
- •Создание триггеров
- •Вопрос 31 Понятие функции пользователя
- •Функции Scalar
- •Функции Inline
- •Функции Multi-statement
- •Встроенные функции
- •Математические функции
- •Строковые функции
- •Функции для работы с датой и временем
- •Вопрос 30 Хранимые процедуры в среде ms sql Server
- •Типы хранимых процедур
- •Создание, изменение и удаление хранимых процедур
- •Вопрос 29 28 Определение представления
- •Обновление данных в представлениях
- •Преимущества и недостатки представлений
- •Независимость от данных
- •Актуальность
- •Ограниченные возможности обновления
- •Структурные ограничения
- •Снижение производительности
- •Вопрос 27
- •Содержание
- •Определение[править | править исходный текст]
- •Пример[править | править исходный текст]
- •Поддержание ссылочной целостности в бд[править | править исходный текст] Причины нарушений[править | править исходный текст]
- •Пустые внешние ключи[править | править исходный текст]
- •Ссылочная целостность на триггерах[править | править исходный текст]
- •Ссылочная целостность на внешних ключах[править | править исходный текст]
- •Вопрос 26 Использование подзапросов, возвращающих множество значений
- •Использование операций in и not in
- •Использование ключевых слов any и all
- •Использование операций exists и not exists
- •Вопрос 25 Использование подзапросов, возвращающих единичное значение
- •Вопрос 24 Понятие подзапроса
- •Вопрос 23
- •Вопрос 22 Агрегатные функции MySql
- •Среднее значение
- •Сортировка агрегатных значений
- •Подсчет количества товара для каждого раздела каталога
- •Вопрос 20 Предложение select
- •Предложение from
- •Предложение where
- •Сравнение
- •Диапазон
- •Принадлежность множеству
- •Соответствие шаблону
- •Значение null
- •Предложение order by
Вопрос 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() в выражениях