Самые популярные пары товаров
Всем привет, второй день бьюсь над задачей и не знаю как к ней даже подступиться.
Есть две таблицы, первая с номерами заказов (order_id) и номерами продуктов которые в этих заказах в виде массива (product_ids), пример:
таблица номер 1
| order_id | product_ids |
|---|---|
| 1 | [65, 28] |
| 2 | [35, 30, 42, 34] |
| 3 | [24, 70, 77] |
| 4 | [72, 40, 20] |
| 5 | [48] |
| 6 | [76, 52, 65, 75, 77] |
| 7 | [35, 74, 15, 34, 80] |
| 8 | [41] |
| 9 | [40, 27, 24, 39, 62, 15] |
| 10 | [3, 78] |
| 11 | [84, 14, 57] |
| 12 | [54, 83, 11, 28] |
| 13 | [1, 63, 78, 70, 50, 50] |
| 14 | [65, 1, 26, 43, 6] |
| 15 | [79] |
| 16 | [71, 83, 46] |
| 17 | [73, 8, 70, 74] |
| 18 | [16, 25, 74] |
| 19 | [40, 31, 38, 28] |
| 20 | [33, 20] |
вторая с именем товара (name) и его номером (product_id)
таблица номер 2
| name | product_id |
|---|---|
| ананас | 64 |
| апельсины | 38 |
| арбуз | 16 |
| бананы | 65 |
| баранина | 37 |
| батон | 20 |
| бублики | 39 |
| варенье | 85 |
| вафли | 83 |
| виноград | 12 |
| вода газированная | 41 |
| вода негазированная | 3 |
| говядина | 66 |
| горох | 42 |
| гречка | 31 |
| груши | 72 |
| жевательная резинка | 80 |
| иван-чай в пакетиках | 48 |
| икра | 13 |
Задача: сформировать список пар товаров которые чаще встречаются в заказах. Результат должен быть примерно такой:
| pair | count_pair |
|---|---|
| ['курица', 'хлеб'] | 249 |
| ['сахар', 'хлеб'] | 237 |
| ['батон', 'хлеб'] | 235 |
| ['кофе 3 в 1', 'чай черный в пакетиках'] | 235 |
| ['курица', 'сахар'] | 233 |
| ... | ... |
| ['леденцы', 'мука'] | 58 |
| ['масло оливковое', 'рис'] | 58 |
| ['молоко', 'рыба соленая'] | 58 |
| ['морс клюквенный', 'сливки'] | 58 |
| ['семечки', 'энергетический напиток'] | 58 |
| ... | ... |