Вы считаете «уникальные покупатели по бренду». Данные: order_items(user_id, product_id) и products(product_id, brand). Пользователь может купить несколько товаров одного бренда. Какой расчёт на объединённых данных соответствует цели и устойчив к duplication?

ACOUNT(*) по строкам после JOIN
BSUM(user_id) по строкам после JOIN
CAVG(user_id) по строкам после JOIN
DCOUNT(DISTINCT user_id) по brand после JOIN order_itemsproducts
Правильный ответ. Для «уникальных покупателей» нужно считать distinct по user_id, иначе one-to-many покупки создадут duplication строк.

Разбор

После JOIN одна покупка равна одной строке, но один пользователь может сделать много покупок в одном бренде. COUNT(*) покажет количество строк, а не пользователей. COUNT(DISTINCT user_id) по brand соответствует бизнес-вопросу и защищает метрику от раздувания при росте количества позиций.

Проверь себя · 1/3разбор после ответа
В events(user_id, event_id) у пользователя может быть много строк, и в orders(user_id, order_id) тоже много строк. Вы соединяете их по user_id. Какая cardinality получается на ключе и как это влияет на строки?
Открыть Карьерник в Telegram

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