Агрегатные функции и группировка данных: ЕГЭ по информатике
Агрегатные функции (SUM, AVG, COUNT, MIN, MAX) вычисляют одно значение по набору строк; GROUP BY группирует строки по одинаковым значениям столбцов, после чего агрегаты считаются по каждой группе; HAVING фильтрует группы после группировки, в отличие от WHERE, который фильтрует строки до неё.
Что нужно знать
- Агрегатные функции: COUNT, SUM, AVG, MIN, MAX — возвращают одно значение для набора строк.
- COUNT(*) считает все строки, COUNT(столбец) — только строки, где столбец не NULL; SUM/AVG игнорируют NULL.
- GROUP BY группирует строки с одинаковыми значениями указанных столбцов; в SELECT можно выводить только столбцы из GROUP BY и агрегаты.
- WHERE фильтрует строки до группировки, HAVING — группы после группировки; HAVING может содержать агрегаты, WHERE — нет.
- Логический порядок выполнения запроса: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY.
- ORDER BY сортирует результат; может использовать псевдонимы из SELECT.
Термины и понятия
- Агрегатная функция: функция, вычисляющая одно значение по множеству строк (COUNT, SUM, AVG, MIN, MAX).
- GROUP BY: предложение SQL для группировки строк с одинаковыми значениями указанных столбцов.
- HAVING: предложение SQL для фильтрации групп после GROUP BY; может содержать агрегатные функции.
- WHERE: предложение SQL для фильтрации строк до группировки; не может содержать агрегатные функции.
- COUNT(*): агрегатная функция, возвращающая количество строк в группе (включая строки с NULL).
- COUNT(столбец): возвращает количество не-NULL значений в столбце.
- SUM(столбец): сумма не-NULL значений столбца.
- AVG(столбец): среднее арифметическое не-NULL значений столбца.
Частые ошибки
- Использование агрегатной функции в WHERE (например, WHERE COUNT(*) > 3) — нужно HAVING.
- Вывод в SELECT столбца, не входящего в GROUP BY и не являющегося агрегатом (например, SELECT Клиент, Сумма FROM Заказы GROUP BY Клиент — ошибка, если Сумма не агрегирована).
- Путаница COUNT(*) и COUNT(столбец): COUNT(*) считает все строки, COUNT(столбец) — только не-NULL.
- Ожидание, что SUM/AVG учитывают NULL (они игнорируют NULL, что может исказить среднее).
Как пройти тему
В курсе «Информатика» тема «Агрегатные функции и группировка данных» занимает 1 занятие по 40 минут: репетитор объясняет материал, задаёт вопросы как на экзамене, разбирает ваши ответы и в конце ставит оценку. Это обзор темы, полный разбор — в занятии. ИИ может ошибаться: проверяйте важное по учебнику. Занятия не заменяют живого репетитора и не гарантируют результат на экзамене.
Начать бесплатноОткрыть курсДругие темы раздела
- Реляционные базы данных. Основные понятия: таблица, запись, поле, ключ
- Нормализация отношений. Типы связей между таблицами
- Язык SQL. Операторы SELECT, WHERE, ORDER BY, GROUP BY
- Многотабличные запросы. Объединения JOIN
← Предыдущая тема: Многотабличные запросы. Объединения JOIN
Следующая тема: Основные понятия электронных таблиц. Адресация ячеек (относительная, абсолютная, смешанная)
