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