Gymterview
junior

Перечислите основные агрегатные функции

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

Функция Назначение Учитывает NULL
COUNT(*) Количество строк (включая NULL) Да (считает строки)
COUNT(column) Количество не-NULL значений в столбце Нет (игнорирует)
SUM(column) Арифметическая сумма значений Нет (игнорирует)
AVG(column) Среднее арифметическое значений Нет (игнорирует)
MAX(column) Максимальное значение Нет (игнорирует)
MIN(column) Минимальное значение Нет (игнорирует)

Все агрегатные функции, кроме COUNT(*), игнорируют NULL-значения. Это означает, что AVG вычисляет среднее только по непустым значениям, а не делит сумму на общее количество строк. Модификатор DISTINCT внутри функции позволяет работать только с уникальными значениями: COUNT(DISTINCT department).

Пример
SELECT
    COUNT(*) AS total_rows,
    COUNT(bonus) AS rows_with_bonus,
    SUM(salary) AS total_salary,
    AVG(salary) AS avg_salary,
    MAX(salary) AS max_salary,
    MIN(salary) AS min_salary
FROM employees;

На собеседовании: перечислите все шесть функций и подчеркните разницу в обработке NULL. Частая ошибка — не знать, что AVG игнорирует NULL, а не считает их нулями.