Ответ
Основное различие между HAVING и WHERE заключается в этапе выполнения запроса, на котором они применяются для фильтрации данных.
- WHERE — фильтрует строки до группировки (оператор
GROUP BY). Он работает с отдельными записями таблицы. - HAVING — фильтрует результаты после группировки. Он применяется к агрегированным данным, таким как суммы (
SUM), средние значения (AVG) или количества (COUNT).
Примеры:
-- WHERE: выбираем только сотрудников с зарплатой > 50000, а затем группируем
SELECT department, AVG(salary)
FROM employees
WHERE salary > 50000
GROUP BY department;
-- HAVING: сначала группируем по отделам, затем оставляем только те, где средняя зарплата > 70000
SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) > 70000;
Ключевые отличия:
WHEREне может использовать агрегатные функции (какAVG(salary)в условии),HAVING— может.- Использование
WHEREдля первичной фильтрации данных обычно эффективнее, так как сокращает объем данных, поступающих на этап группировки.
Видео-ответы
▶
СОБЕСЕДОВНИЕ SENIOR AQA PYTHON | ВИЛКА 350к
▶
Как нужно проходить собеседование по Python, чтобы получить оффер!
▶
Моковое собеседование на Middle Golang разработчика | Solvery & Uproger
▶
Golang живое собеседование Middle Go разработчика!
▶
глупое собеседование на фулстек разработчика
▶
Открытое собеседование PHP Middle
▶
Собеседование на позицию Backend Developer Python + Django Middle #2
▶
Проверяем знания перед реальными собеседованиями | Техническое собеседование Java Kotlin | Jetbulb
▶
Собеседование Java Junior | Никита В. vs. Максим Добрынин | Jetbulb
▶
СОБЕСЕДОВАНИЕ по PHP: к каким ВОПРОСАМ готовиться?
▶
Публичное собеседование: PHP-программист [Хекслет]