**Компания:** Яндекс
**Позиция:** Аналитик данных / DE, Middle
[см. код в задании]
**Контекст:** В таблицу сырых событий приходят дубли (одно событие может прийти 2-5 раз из-за retry). event_id уникален для события, но может повторяться.
**Задание:** Напиши запрос для дедупликации — оставь только первое вхождение каждого event_id.
Структура для ориентира — реальные значения из эталонного решения.
-- Дедупликация через ROW_NUMBER
WITH deduped AS (
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY event_id
ORDER BY received_at ASC
) AS rn
FROM raw_events
)
SELECT event_id, user_id, event_type, payload, received_at
FROM deduped
WHERE rn = 1;
-- Production: материализация
CREATE TABLE clean_events AS
SELECT event_id, user_id, event_type, payload, received_at
FROM deduped WHERE rn = 1;
SQL дедупликация ROW_NUMBER Data Engineering Яндекс
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «data_engineering» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: SQL, дедупликация, ROW_NUMBER, Data Engineering, Яндекс.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть другие задания в категории «data_engineering», продуктовые кейсы, справочник метрик, AI мок-собеседование с разбором ваших ответов.
← Все задания