Встречается на собеседованиях • сегодня

В чем разница между HAVING и WHERE

Основное отличие между HAVING и WHERE в SQL заключается в том, где они применяются в запросе:

  • WHERE фильтрует строки до группировки (GROUP BY).
  • HAVING фильтрует уже сгруппированные данные (после GROUP BY).

Пример:

sql
-- WHERE фильтрует до группировки
SELECT department, COUNT(*) 
FROM employees 
WHERE salary > 50000 
GROUP BY department;

-- HAVING фильтрует после группировки
SELECT department, COUNT()
FROM employees
GROUP BY department
HAVING COUNT(
) > 10;

text

**Ключевые моменты:**  
1. `WHERE` работает с отдельными строками, `HAVING` — с агрегатами (COUNT, SUM и т.д.).  
2. `HAVING` требует GROUP BY (если нет агрегатных функций для всей таблицы).  
3. В одном запросе можно использовать оба:  
   ```sql
   SELECT department, AVG(salary) 
   FROM employees 
   WHERE hire_date > '2020-01-01' 
   GROUP BY department 
   HAVING AVG(salary) > 70000;
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы