Вы хотите добавить к orders атрибут category из таблицы products(product_id, category) и не изменить количество строк заказов. Что важнее всего проверить про products, чтобы избежать duplication?

AЧто в orders нет повторяющихся order_id
BЧто в products product_id уникален, то есть one-to-one cardinality по product_id
CЧто category заполнен на 100%
DЧто вы используете distinct после JOIN
Правильный ответ. Если справочник имеет one-to-one cardinality по ключу, атрибутный JOIN не вызывает duplication строк.

Разбор

Проблемы начинаются, когда в справочнике на один product_id несколько строк, например разные версии атрибутов. Тогда один заказ начинает матчиться на несколько строк и появляется duplication. Проверка уникальности ключа — простой способ предсказать изменение числа строк ещё до расчёта метрик.

Проверь себя · 1/3разбор после ответа
После JOIN users с events по user_id (one-to-many) вы хотите получить число пользователей, у которых был хотя бы один ивент. Какой расчёт даст корректное число пользователей?
Открыть Карьерник в Telegram

Ещё вопросы по теме «JOIN и кардинальность»