Почему количество значений в результатах запроса с агрегатными функциями не равно количеству строк?

Если в запросе используется агрегатная функция без группировки (GROUP BY), результат будет одной строкой с агрегированным значением по всему набору данных.

Короткий ответ

Что ответить на собеседовании

Количество значений в результатах запроса с агрегатными функциями не равно количеству строк исходной таблицы, потому что агрегатные функции (например, SUM, COUNT, AVG, MAX, MIN) сводят множество строк к одному или нескольким значениям, обобщая данные. Если в запросе используется агрегатная функция без группировки (GROUP BY), результат будет одной строкой с агрегированным значением по всему набору данных.

Подробный разбор

Ответ с пояснениями

Количество значений в результатах запроса с агрегатными функциями не равно количеству строк исходной таблицы, потому что агрегатные функции (например, SUM, COUNT, AVG, MAX, MIN) сводят множество строк к одному или нескольким значениям, обобщая данные. Если в запросе используется агрегатная функция без группировки (GROUP BY), результат будет одной строкой с агрегированным значением по всему набору данных.

Если же используется GROUP BY, то количество строк в результате будет равно количеству уникальных групп, а не количеству исходных строк. Например, если группировать по столбцу с 5 уникальными значениями, результат будет содержать 5 строк — по одной на каждую группу.

Пример:

SELECT department, COUNT(*) AS employee_count
FROM employees
GROUP BY department;

Здесь результат содержит по одной строке на каждый отдел, а не на каждого сотрудника.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее