В общем, вся задачка одним постом:
Есть таблица:
[ID чека, Имя товара, ... ]
что то типа:
1, Товар 1
1, Товар 2
2, Товар 1
2, Товар 3
Нужно сфоримировть таблицу, в которой будет:
[Товар, товар, который встречается с ним в чеке, количество таких чеков]
Товар 1, товар 2, 1
товар 1, товар 3, 1
товар 2, товар 1, 1
товар 2, товар 3, 0
товар 3 товар 1 , 1
товар 3 , товар 2, 0
это для таблицы выше.
Чеков миллионы, товаров сотни тысяч наименований.
Таблицы с сотнями тыщщ столбцов создавать не вариант.
Хотяб вектор понять,В котором копать...
tmp:
Load order, product as p inline
[order, product
1, milk
1, butter
1, bread
2, milk
2, bread
3, milk
3, cheese
];
left join
Load order, product as p2 inline
[order, product
1, milk
1, butter
1, bread
2, milk
2, bread
3, milk
3, cheese
];
fin:
load p, p2, count(distinct order) as orders_count
Resident tmp
Where p <> p2
Group by p, p2;
drop table tmp;