138просмотров
55.9%от подписчиков
21 октября 2024 г.
Score: 152
WHERE и HAVING действуют на разных этапах выполнения фильтрации данных.
WHERE - является условным оператором, который применяется в случаях, когда нужно сделать выборку по определенному условию, перед агрегацией данных.
HAVING - используется для фильтрации групп строк(GROUP BY), по значениям агрегатных функций.
То есть, WHERE выполняется до GROUP BY, а HAVING уже после.
Пример: 💻
SELECT family_member, AVG(unit_price) as avg
FROM Payments
WHERE unit_price > 300
GROUP BY family_member
HAVING avg > 2000
✅ Сначала фильтруются записи, у которых unit_price > 300.
✅ Затем происходит группировка по family_member.
✅ В конце происходит финальная фильтрация по HAVING.