Выбор ответа Junior SQL для аналитика спрашивают часто обновлено
WHERE или HAVING
Вопрос
Нужно вывести статусы, по которым больше 10 заказов. Где написать условие COUNT(*) > 10?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: В HAVING после GROUP BY. WHERE фильтрует строки до группировки, агрегатов там ещё нет, и запрос упадёт с ошибкой.
Варианты ответа
- В WHERE до группировки
- В условии ON соединения
- В ORDER BY после SELECT
- В HAVING после GROUP BYправильный ответ
Разбор
WHERE фильтрует строки до группировки, агрегатов там ещё нет, и запрос упадёт с ошибкой. HAVING фильтрует уже сгруппированные строки и видит агрегаты. ORDER BY только сортирует, ON задаёт условие соединения.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.