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, а не считает их нулями.