SELECT user_id, COUNT(*) AS orders_countFROM ordersGROUP BY user_idHAVING COUNT(*) >= 6;WHERE фильтрует строки до группировки. HAVING фильтрует группы после неё. Поэтому условие на COUNT(*) находится в HAVING.Если нужны только оплаченные заказы, добавь условие раньше:
SELECT user_id, COUNT(*) AS paid_ordersFROM ordersWHERE status = 'paid'GROUP BY user_idHAVING COUNT(*) >= 6;Строчка
WHERE status = 'paid' убирает неоплаченные заказы до подсчёта. А HAVING оставляет пользователей, у которых оплаченных заказов шесть или больше.Лайфхак для проверки: сначала запусти тот же запрос без
HAVING и посмотри на суммы по нескольким знакомым user_id.
