В stocks — остатки по складам. Нулевые остатки тоже хранятся строкой. После инвентаризации бывают строки без привязки к карточке — nm_id в них NULL.
Найдите карточки из cards, которые сейчас нельзя купить: ни на одном складе нет остатка больше 0. Верните nm_id, title, порядок по nm_id.
В работе: Ежедневная рассылка продавцу: какие карточки пропали из выдачи, потому что товар закончился.
Таблицы
cards — карточки товаров
| Колонка | Тип | Что значит |
|---|---|---|
nm_id | int | артикул |
seller_id | int | продавец |
title | text | название |
stocks — остатки по складам
| Колонка | Тип | Что значит |
|---|---|---|
warehouse | text | склад |
nm_id | int | артикул, бывает NULL |
qty | int | остаток, ≥ 0 |
Пример: данные
cards · 4 строки
| nm_id | seller_id | title |
|---|---|---|
| 1001 | 1 | Термокружка 450 мл |
| 1002 | 1 | Чехол для iPhone 15 |
| 1003 | 2 | Коврик для йоги |
| 1004 | 2 | Ночник детский |
stocks · 5 строк
| warehouse | nm_id | qty |
|---|---|---|
| Коледино | 1001 | 12 |
| Казань | 1001 | 0 |
| Коледино | 1002 | 0 |
| Электросталь | 1002 | 0 |
| Казань | 1003 | 4 |
Ожидаемый ответ
| nm_id | title |
|---|---|
| 1002 | Чехол для iPhone 15 |
| 1004 | Ночник детский |
Как проверяем
Ваш запрос выполняется в PostgreSQL 16 прямо в браузере на 4 наборах данных: пример выше и скрытые — с NULL, повторами и пустыми таблицами. Нужен один
SELECT, можно с WITH. Сравниваем значения по порядку колонок, названия колонок могут быть свои. Порядок строк важен — как задано в условии.
nm_id, title
Источник: на данных Wildberries: карточки товаров и остатки на складах. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Стр. 1Ctrl+Enter — запуск · Ctrl+Shift+Enter — отправка
Посмотреть данные, проверить кусок запроса. На зачёт не влияет.
Здесь появится результат отправки.