Агрегатные функции производят одиночное значение для всей группы таблицы. В SQL допускается следующие агрегатные функции:
COUNT –производит подсчёт количества строк или не-NULLзначений полей, которые выбрал запрос;
SUM– рассчитывает арифметическую сумму всех выбранных значений данного поля (только для числовых полей);
AVG – производит усреднение всех выбранных значений данного поля;
MAX –находит и возвращает наибольшее из всех выбранных значений данного поля;
MIN– находит и возвращает наименьшее из всех выбранных значений данного поля.
Пример 1. Найти сумму всей выплаченной стипендии в таблице с данными о студентах.
SELECT SUM(STIP)
FROMSTUDENTS;
Результат запроса: 68.00.
Пример 2. Подсчитать количество студентов, сдававших учебные предметы по таблице успеваемости.
SELECT COUNT (DISTINCTSNUM)
FROM USP;
Результат запроса: 4
Пример 3. Подсчитать общее число строк в таблице STUDENTS.
SELECT COUNT (*)
FROMSTUDENTS;
Результат запроса: 5
COUNTсо звездочкой включает записи с NULLзначениями, а так же дубликаты, по этой причинеDISTINCTв данном случае не может быть использован.
Различая междуALLи * при использовании сCOUNT: ALLиспользует имя как аргумент и не может подсчитать значения NULL.Функции, отличные от COUNT, игнорируют значение NULLв любом случае.
Пример 4. Подсчитать количество не-NULL значений в поле SNUM.
SELECT COUNT (ALLSNUM)
FROM USP;
Результат запроса: 5
При использовании агрегатных функций с аргументами запрещено использование команды DISTINCT.
Пример 5. Найти максимальную величину проиндексированной вдвое стипендии, т.е. увеличенную в два раза.