Выбор ответа Junior SQL для аналитика спрашивают часто обновлено

WHERE или HAVING

Вопрос

Нужно вывести статусы, по которым больше 10 заказов. Где написать условие COUNT(*) > 10?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: В HAVING после GROUP BY. WHERE фильтрует строки до группировки, агрегатов там ещё нет, и запрос упадёт с ошибкой.

Варианты ответа

  1. В WHERE до группировки
  2. В условии ON соединения
  3. В ORDER BY после SELECT
  4. В HAVING после GROUP BYправильный ответ

Разбор

WHERE фильтрует строки до группировки, агрегатов там ещё нет, и запрос упадёт с ошибкой. HAVING фильтрует уже сгруппированные строки и видит агрегаты. ORDER BY только сортирует, ON задаёт условие соединения.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.