Easywherehaving
Чем WHERE от HAVING отличается?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
WHERE фильтрует строки до группировки и не может использовать агрегаты. HAVING фильтрует группы после GROUP BY и работает с агрегатами.
SELECT department, COUNT(*) AS cnt
FROM employees
WHERE salary > 50000 -- фильтр по строкам
GROUP BY department
HAVING COUNT(*) > 5; -- фильтр по группамЛогический порядок SQL: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Всё, что можно перенести в WHERE, переносим туда — это отсекает строки раньше и эффективнее.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.