Там не сидит редактор и не листает вручную миллионы прослушиваний. Там работает запрос. Примерно такой: возьми всех пользователей, посчитай, сколько раз они слушали каждый жанр, и оставь только тех, у кого перевес в сторону инди-рока выше определённого порога. Вот это — HAVING в действии. Представь: у тебя есть таблица с миллионом заказов маркетплейса. Ты хочешь найти клиентов, которые реально тратят деньги — скажем, больше 50 000 рублей суммарно. Не тех, кто купил один раз носки. А тех, на кого стоит тратить бюджет на удержание. Вот здесь и начинается разница между WHERE и HAVING — и это не просто синтаксис, это разная логика мышления. WHERE работает до того, как данные сгруппированы. Он отсекает строки ещё на входе — как фейсконтроль, который не пускает на мероприятие вообще. HAVING работает после группировки. Он смотрит на уже посчитанные итоги и решает: этот клиент проходит, этот — нет. SELECT customer_id, SUM(amount) AS total
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 5