Как задать условия отбора после выполнения группировки?

Для условий на группы используется HAVING, а WHERE отбирает исходные строки до группировки. Например, HAVING COUNT(*) > 1 оставит группы с несколькими записями.

Короткий ответ

Что ответить на собеседовании

Для условий на группы используется HAVING, а WHERE отбирает исходные строки до группировки. Например, HAVING COUNT(*) > 1 оставит группы с несколькими записями.

Подробный разбор

Ответ с пояснениями

Для условий на группы используется HAVING, а WHERE отбирает исходные строки до группировки. Например, HAVING COUNT(*) > 1 оставит группы с несколькими записями.

Пример:

SELECT customer_id, COUNT(*) AS orders_count
FROM orders
WHERE status = 'completed'
GROUP BY customer_id
HAVING COUNT(*) > 1;

Сначала логически учитываются завершённые заказы, затем остаются клиенты с более чем одним таким заказом. Это логический смысл запроса, не обещание физического порядка выполнения планом СУБД.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее