Вопросы на собеседовании аналитика: SQL и метрики
Что спрашивают у стажёров и джунов в аналитике: SQL на бумаге, статистика и продуктовые кейсы. У каждого вопроса — короткий ответ и типичная ловушка.
SQL
-
Какие бывают JOIN?
INNER— только совпавшие строки;LEFT— все строки левой таблицы и совпавшие справа (остальное — NULL);RIGHT— наоборот;FULL— все строки обеих;CROSS— все комбинации. -
Почему после LEFT JOIN COUNT(*) вырос в три раза?
В правой таблице несколько строк на один ключ — например, три заказа у клиента, — и каждая строка слева размножилась. Лечится агрегацией правой таблицы до JOIN или
COUNT(DISTINCT client_id). -
Чем WHERE отличается от HAVING?
WHEREфильтрует строки до группировки,HAVING— группы послеGROUP BY, поэтому в нём можно использовать агрегаты:HAVING COUNT(*) > 5. -
COUNT(*), COUNT(col) и COUNT(DISTINCT col) — в чём разница?
COUNT(*)считает все строки,COUNT(col)— строки, где col не NULL,COUNT(DISTINCT col)— уникальные не-NULL значения. -
Как ведёт себя NULL в сравнениях?
Любое сравнение с NULL даёт «неизвестно», поэтому
col = NULLне находит ничего — нужноIS NULL.NOT INс NULL в подзапросе возвращает пустой результат; надёжнееNOT EXISTS. -
Что такое оконные функции?
Агрегаты и ранги по «окну» строк без схлопывания результата:
ROW_NUMBER(),RANK(),SUM() OVER (PARTITION BY … ORDER BY …). Типичные задачи — топ-N в каждой группе, накопительный итог, разница с предыдущей строкой черезLAG. -
Как найти вторую по величине зарплату?
SELECT MAX(salary) FROM staff WHERE salary < (SELECT MAX(salary) FROM staff);или черезDENSE_RANK() OVER (ORDER BY salary DESC)и фильтр по рангу 2 — второй вариант проще обобщить до N-й. -
Как найти дубликаты?
GROUP BYпо полям, которые должны быть уникальными, иHAVING COUNT(*) > 1. Чтобы оставить одну строку из дублей —ROW_NUMBER() OVER (PARTITION BY …)и строки с номером больше 1.
Статистика и продуктовые кейсы
-
Чем медиана отличается от среднего и когда что брать?
Среднее чувствительно к выбросам: пара огромных чеков сдвигает его вверх. Для чеков, зарплат и времени сессии обычно смотрят медиану, а среднее — вместе с распределением.
-
Как устроен A/B-тест?
Гипотеза и одна главная метрика заранее; случайное разделение пользователей; размер выборки считают до старта из ожидаемого эффекта. Итог смотрят один раз по окончании, а не подглядывают каждый день.
-
Что такое p-value?
Вероятность увидеть такую же или бо́льшую разницу, если на самом деле эффекта нет. Меньше порога (часто 0,05) — считаем разницу статистически значимой. Это не вероятность того, что гипотеза верна.
-
Как посчитать retention?
Берут когорту — например, зарегистрировавшихся в одну неделю — и смотрят долю тех, кто вернулся на 1-й, 7-й, 30-й день. Считают по когортам, чтобы новые пользователи не смешивались со старыми.
-
Метрика упала на 20% — что будете делать?
Проверить данные (сбой трекинга, изменение формулы), затем разрезать: по платформам, версиям, регионам, источникам трафика, сегментам пользователей. Сопоставить с релизами и внешними событиями. Сначала найти, где упало, потом — почему.
-
Как построить воронку и найти узкое место?
Выписать шаги от входа до целевого действия, посчитать конверсию каждого шага и сравнить с прошлым периодом и между сегментами. Узкое место — шаг с самой большой потерей относительно нормы, а не просто самый маленький.
На кейсах интервьюер смотрит, как вы структурируете проблему: гипотезы, данные для проверки, порядок действий. Проговаривайте план вслух, даже если сразу знаете ответ. Как готовиться по дням — в отдельном материале.