Что такое HAVING в SQL

«Что такое HAVING в SQL» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HAVING используется в SQL для фильтрации результатов агрегатных функций (COUNT, SUM, AVG и т.д.) после группировки с GROUP BY. В отличие от WHERE, который фильтрует строки до группировки, HAVING применяется после.

Пример:

SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;

Здесь выбираются только отделы с количеством сотрудников больше 5.

Ключевые отличия от WHERE:

  1. WHERE фильтрует до группировки, HAVING — после
  2. HAVING может использовать агрегатные функции, WHERE — нет
  3. HAVING всегда идет после GROUP BY, если он есть