Товары, которые ни разу не заказывали

Лёгкая null-handling Lamoda

Условие задачи

В таблице products — каталог товаров, в order_items — позиции заказов (product_id). Найди товары, которые НИ РАЗУ не встречались в заказах. Верни: product_id, name. Сортируй по product_id.

Схема данных

CREATE TABLE products (
  product_id INTEGER PRIMARY KEY,
  name       TEXT NOT NULL
);
CREATE TABLE order_items (
  order_id   INTEGER NOT NULL,
  product_id INTEGER NOT NULL
);

Темы

anti-join not-exists left-join null подзапрос

Подсказки

Что проверяет эта задача

Задача «Товары, которые ни разу не заказывали» учит решать задачи по теме «null-handling» так, как это спрашивают на собеседовании аналитика данных. Такие задачи встречаются на собеседованиях в Lamoda и других IT-компаниях. Уровень лёгкий — это база, которую должен уверенно держать каждый аналитик.

Как подступиться к решению

Сначала разберись со схемой данных и пойми, какой результат нужен на выходе. Определи, какие таблицы и поля задействованы, и собирай запрос пошагово: фильтрация → соединение или группировка → итоговый отбор и сортировка. Проверь результат на крайних случаях — NULL, дубликаты, пустые группы. Свой запрос сразу прогоняешь автопроверкой в интерактивной SQL-песочнице на реальной базе (SQLite и PostgreSQL 16 прямо в браузере).

Разбор темы с примерами — в гайде «null-handling в SQL». Хочешь системно с нуля — пройди бесплатный курс «SQL с нуля».

Решить в интерактивной SQL-песочнице → ← Все SQL-задачи