Чем WHERE отличается от HAVING?

Оператор WHERE и оператор HAVING в SQL используются для фильтрации данных, но применяются на разных этапах обработки запроса:

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

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

Оператор WHERE и оператор HAVING в SQL используются для фильтрации данных, но применяются на разных этапах обработки запроса:

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

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

Оператор WHERE и оператор HAVING в SQL используются для фильтрации данных, но применяются на разных этапах обработки запроса:

  • WHERE фильтрует строки до группировки. Он ограничивает набор данных, который будет агрегироваться.
  • HAVING фильтрует группы после агрегирования. Используется вместе с GROUP BY для отбора групп по условиям на агрегатные функции.

Пример:

SELECT department, COUNT(*) AS employee_count
FROM employees
WHERE salary > 50000  -- фильтруем сотрудников с зарплатой выше 50000
GROUP BY department
HAVING COUNT(*) > 10    -- выбираем отделы с более чем 10 сотрудниками

Здесь сначала выбираются сотрудники с зарплатой выше 50000 (WHERE), затем данные группируются по отделам, и из этих групп выбираются только те, где количество сотрудников больше 10 (HAVING).

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку