HAVING фильтрует группы после группировки и вычисления агрегатов, а WHERE отбирает строки до неё. Например, можно выбрать клиентов, у которых больше трёх заказов.
Ключевое слово HAVING — знакомо, приходилось использовать?
HAVING фильтрует группы после группировки и вычисления агрегатов, а WHERE отбирает строки до неё. Например, можно выбрать клиентов, у которых больше трёх заказов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
HAVING фильтрует группы после группировки и вычисления агрегатов, а WHERE отбирает строки до неё. Например, можно выбрать клиентов, у которых больше трёх заказов.
Пример:
SELECT customer_id, COUNT(*) AS orders_count
FROM orders
GROUP BY customer_id
HAVING COUNT(*) > 3;
Если считать только оплаченные заказы, условие по статусу обычно добавляют в WHERE. Оно влияет на состав строк до подсчёта. Не путайте фильтрацию результата COUNT с фильтрацией отдельных заказов. При вопросе об опыте дополните объяснение реальным применением, если оно было.