Внешний фид product_feed льёт обновления по товарам с дублями. Для каждого SKU оставь только одну — самую свежую — строку по updated_at. Если у одного SKU две строки с одинаковым updated_at (полный дубль) — оставь ту, у которой больше feed_row_id. Верни: feed_row_id, sku, price, stock, updated_at. Сортируй по sku.
CREATE TABLE product_feed (
feed_row_id INTEGER PRIMARY KEY,
sku TEXT NOT NULL,
price REAL NOT NULL,
stock INTEGER NOT NULL,
updated_at TEXT NOT NULL
);
window deduplication row_number cte tie-break
Задача «Дедупликация товарного фида: оставить актуальную строку» учит дедуплицировать строки, оставляя нужную запись (ROW_NUMBER / DISTINCT ON). Такие задачи встречаются на собеседованиях в Спортмастер и других IT-компаниях. Уровень средний — типичная боевая задача на уверенное владение SQL.
Сначала разберись со схемой данных и пойми, какой результат нужен на выходе. Определи, какие таблицы и поля задействованы, и собирай запрос пошагово: фильтрация → соединение или группировка → итоговый отбор и сортировка. Проверь результат на крайних случаях — NULL, дубликаты, пустые группы. Свой запрос сразу прогоняешь автопроверкой в интерактивной SQL-песочнице на реальной базе (SQLite и PostgreSQL 16 прямо в браузере).
Разбор темы с примерами — в гайде «Дедупликация в SQL». Хочешь системно с нуля — пройди бесплатный курс «SQL с нуля».
Решить в интерактивной SQL-песочнице → ← Все SQL-задачи