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

205. Каких размеров нет в наличии

Лёгкая

У карточки одежды в cards записана сетка: российские размеры от size_min до size_max с шагом 2 (42, 44, 46…). Остатки по складам лежат в stock, строки с qty = 0 там тоже бывают.

Верните все пары card_id, size, для которых товара нет ни на одном складе: строки в stock нет совсем или сумма qty по складам равна нулю. Порядок — по card_id, затем по size.

В работе: Подсказка продавцу перед распродажей: какие размеры довезти на склад.

Таблицы

cards — карточки товаров с размерной сеткой

КолонкаТипЧто значит
card_idintключ
titletextназвание
size_minintнаименьший размер
size_maxintнаибольший размер

stock — остатки: склад × карточка × размер

КолонкаТипЧто значит
warehousetextсклад
card_idintкарточка
sizeintразмер
qtyintштук

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

cards · 2 строки

card_idtitlesize_minsize_max
101Платье трикотажное4250
102Худи оверсайз4652

stock · 8 строк

warehousecard_idsizeqty
Коледино101425
Коледино101440
Казань101463
Коледино101501
Коледино1024612
Коледино102487
Казань102502
Казань102524

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

card_idsize
10144
10148
Как проверяем Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 5 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
card_id, size
антиджойнLEFT JOINNULLподзапрос

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