Я пытаюсь создать запрос для анализа корзины товаров на основе группировки их типов. У них есть два уровня группировки помимо идентификаторов продуктов.
Dept level
1
2
3
4
и уровень группы покупок
MA
M
MC
WA
W
WC
KA
KC
K
иерархия
- 1> W, WC
- 2> M, MC
- 3> К, КС
- 4> MA, KA, WA
сейчас у меня запрос
Select
i.buying_group,
Sum(d.sales),
Sum(d.units),
count(distinct d.trans_nbr) transaction_count
From
sales_details d, item_data i, (select trans_nbr from sales_details where item_dept = 1 group by trans_nbr) main_group
Where
d.trans_nbr = main_group.trans_nbr
d.item_nbr = i.item_nbr
group by i.buying_group;
Прямо сейчас я получаю данные, которые мне нужны для большинства групп покупателей, но поскольку они выполняются на уровне отдела, это не дает мне правильную информацию о корзине для W и WC. Есть ли способ сделать это на уровне отделов, который бы показывал, покупал ли клиент что-либо из одной из этих групп и имел ли другой в своей корзине, не считая это дважды?
результаты на данный момент примерно такие
buyyin_group Sum(sales) Sum(units) transaction_count
MA 100 5 4
M 75 3 3
MC 56 1 1
WA 48 3 2
W 250 6 6
WC 200 9 9
KA 164 7 5
KC 400 12 7
K 521 14 12 `