Что такое агрегатная функция в SQL?

«Что такое агрегатная функция в SQL?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Агрегатная функция в SQL выполняет вычисление над набором строк и возвращает единственное значение. Она используется для получения сводных данных из таблицы.

Основные агрегатные функции:

  • COUNT() — подсчитывает количество строк.
  • SUM() — вычисляет сумму значений столбца.
  • AVG() — вычисляет среднее арифметическое.
  • MAX() / MIN() — находит максимальное или минимальное значение.

Пример использования:

SELECT 
    COUNT(*) AS total_orders,
    SUM(amount) AS total_revenue,
    AVG(amount) AS average_order_value
FROM orders
WHERE customer_id = 123;

Ключевые особенности:

  1. Обработка NULL: Большинство агрегатных функций (кроме COUNT(*)) игнорируют значения NULL.
  2. Группировка: Часто используются с предложением GROUP BY для агрегации по группам.
  3. Фильтрация: Нельзя использовать напрямую в WHERE; для фильтрации результатов агрегации применяется HAVING.
  4. Одно значение: В запросе без GROUP BY агрегатные функции сворачивают все выбранные строки в одну итоговую.