Отчёт по orders: берём только оплаченные заказы, группируем по категориям и оставляем категории с выручкой выше 100 000. Куда поставишь фильтр по статусу, куда — условие на SUM(amount), и что потеряешь, если оба унести в HAVING?
SQLeasyjunior
Проверяет владение SQL: выборки, агрегации, JOIN-ы и оконные функции.
собеседованиеsqlwherehavingосновы
Варианты ответа
Статус — в WHERE (строки до группировки), SUM(amount) — в HAVING; оба в HAVING — лишняя агрегация и потеря индексов
Оба в HAVING: он выполняется после SELECT, видит и сырые колонки, и агрегаты — план запроса не изменится
Оба условия в WHERE: он выполняется первым и отфильтрует и строки, и агрегаты раньше, чем дело дойдёт до HAVING
Статус — в HAVING (текстовые условия), SUM(amount) — в WHERE (числовые): так распределяет стандарт SQL
Как разобрать этот вопрос на собеседовании
Начни с разбора схемы: какие таблицы и ключи участвуют, где могут быть NULL и дубли строк. Затем реши, что важнее — JOIN, агрегация с GROUP BY/HAVING, оконная функция или подзапрос. На собеседовании ценят не только правильный результат, но и умение проговорить план запроса и крайние случаи (пустые группы, деление на ноль, фан-аут при JOIN).
Это базовый вопрос — на собеседовании его задают как разминку и фильтр, поэтому важно ответить уверенно и без заминок.
Тема вопроса — «SQL». Чтобы подготовиться к похожим задачам, отрабатывай их на практике: sql-тренажёр помогает довести навык до автоматизма, а раздел вопросов — увидеть формулировки, которые реально встречаются на интервью аналитика данных.
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
3000+ вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.