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