Применение агрегатных функций и вложенных запросов в операторе выбора
В 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 | ||||||