🎣 Этот вопрос – частенько бывает на собеседованиях по SQL. Готовы освежить знания и блеснуть экспертизой? 😉
Оба оператора фильтруют данные, но делают это на РАЗНЫХ этапах выполнения запроса.
📌 WHERE работает с отдельными строками ДО группировки.
Представьте таблицу с заказами. WHERE поможет найти заказы, сделанные в определенную дату или с суммой выше заданного порога.
📌 HAVING фильтрует группы строк ПОСЛЕ группировки.
HAVING используется с агрегатными функциями (SUM, AVG, COUNT). Он отбирает группы, удовлетворяющие заданному условию. Например, найти товары, общая сумма продаж которых превышает 10000 рублей.
🚀 Пример:
Вывести категории товаров, средняя цена которых выше 500 рублей.
SELECT category, AVG(price) AS avg_price
FROM products
GROUP BY category
HAVING avg_price > 500;
💡 WHERE здесь не подойдет, так как `avg_price` рассчитывается после группировки.
Подготовились к вопросу? 😉 Делитесь своими примерами использования WHERE и HAVING в комментариях!