MySQL · MySQL 8.4.6
В таблице stocks остатки продавцов. warehouse_id = NULL — товар лежит на складе самого продавца (FBS). Уникальный индекс (seller_id, sku, warehouse_id) должен был не допустить двух строк на одну позицию, но интеграция продавца шлёт остатки дважды, и дубли появились.
Найдите позиции с дублями: seller_id, sku, warehouse_id, copies — сколько строк.
В работе: Чистка данных перед пересчётом доступного остатка на витрине.
Как проверяем
Движка MySQL в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите все верные варианты (одна лишняя отметка допустима). После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
Источник: на данных Ozon: остатки продавцов по складам. Условие пересказано своими словами.
Давали на собеседовании?
Ответов пока мало — ваш поможет.
Какие запросы найдут позиции с дублями?
- EXISTS с обычным =
- GROUP BY seller_id, sku
- GROUP BY по трём колонкам
- Только строки с warehouse_id IS NOT NULL
- EXISTS с оператором <=>