WHERE vs HAVING: в чем разница?

🎣 Этот вопрос – классика на собеседованиях по 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 в комментариях!  #sql

repost

45

input message

напишите коммент

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь