Войти Регистрация
Data base

83. Карточки без остатков ни на одном складе

Лёгкая

В stocks — остатки по складам. Нулевые остатки тоже хранятся строкой. После инвентаризации бывают строки без привязки к карточке — nm_id в них NULL.

Найдите карточки из cards, которые сейчас нельзя купить: ни на одном складе нет остатка больше 0. Верните nm_id, title, порядок по nm_id.

В работе: Ежедневная рассылка продавцу: какие карточки пропали из выдачи, потому что товар закончился.

Таблицы

cards — карточки товаров

КолонкаТипЧто значит
nm_idintартикул
seller_idintпродавец
titletextназвание

stocks — остатки по складам

КолонкаТипЧто значит
warehousetextсклад
nm_idintартикул, бывает NULL
qtyintостаток, ≥ 0

Пример: данные

cards · 4 строки

nm_idseller_idtitle
10011Термокружка 450 мл
10021Чехол для iPhone 15
10032Коврик для йоги
10042Ночник детский

stocks · 5 строк

warehousenm_idqty
Коледино100112
Казань10010
Коледино10020
Электросталь10020
Казань10034

Ожидаемый ответ

nm_idtitle
1002Чехол для iPhone 15
1004Ночник детский
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
nm_id, title
антиджойнNULLподзапрос

Источник: на данных Wildberries: карточки товаров и остатки на складах. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.