Применение агрегатных функций и вложенных запросов в операторе выбора
В SQL добавлены дополнительные функции, которые позволяют вычислять обобщенные групповые значения. Для применения агрегатных функций предполагается предварительная операция группировки. В чем состоит суть операции группировки? При группировке все множество кортежей отношения разбивается на группы, в которых собираются кортежи, имеющие одинаковые значения атрибутов, которые заданы в списке группировки.
Например, сгруппируем отношение R1 по значению столбца Дисциплина. Мы получим 4 группы, для которых можем вычислить некоторые групповые значения, например количество кортежей в группе, максимальное или минимальное значение столбца Оценка.
Это делается с помощью агрегатных функций. Агрегатные функции вычисляют одиночное значение для всей группы таблицы. Список этих функций представлен в таблице 5.7.
Таблица 5.7. Агрегатные функции
Функция | Результат | ||||
COUNT | Количество строк или непустых значений полей, которые выбрал запрос | ||||
SUM | Сумма всех выбранных значений данного поля | ||||
AVG | Среднеарифметическое значение всех выбранных значений данного поля | ||||
M1N | Наименьшее из всех выбранных значений данного поля | ||||
MAX | Наибольшее из всех выоранных значений данного поля | ||||
R1 | |||||||||
| ФИО | Дисциплина | Оценка | ||||||
Группа 1 | Петров Ф. И. | Базы данных | 5 | ||||||
| Сидоров К. А. | Базы данных | 4 | ||||||
| Миронов А. В. | Базы данных | 2 | ||||||
| Степанова К. Е. | Базы данных | 2 | ||||||
| Крылова Т. С. | Базы данных | 5 | ||||||
| Владимиров В. А. | Базы данных | 5 | ||||||
Группа 2 | Сидоров К. А. | Теория информации | 4 | ||||||
| Степанова К. Е. | Теория информации | 2 | ||||||
| Крылова Т. С. | Теория информации | 5 | ||||||
| Миронов А. В. | Теория информации | Null | ||||||
Группа 3 | Трофимов П. А. | Сети и телекоммуникации | 4 | ||||||
| Иванова Е. А. | Сети и телекоммуникации | 5 | ||||||
| Уткина Н. В. | Сети и телекоммуникации | 5 | ||||||
Группа 4 | Владимиров В. А. | Английский язык | 4 | ||||||
| Трофимов П. А. | Английский язык | 5 | ||||||
| Иванова Е. А. | Английский язык | 3 | ||||||
| Петров Ф. И. | Английский язык | 5 i | ||||||