У меня есть таблица TAB, подобная этой:
box_id | product_id | randominfo
1 | a | ...
1 | b | ...
1 | c | ...
2 | a | ...
2 | b | ...
3 | a | ...
3 | c | ...
Я хочу, чтобы для каждой пары продуктов было количество раз, которое они находятся в одной коробке.Например:
product 1 | product 2 | number of times
a | b | 2
a | c | 2
b | c | 1
Я подумал о чем-то вроде:
SELECT p1.product_id, p2.product_id, COUNT (*) AS nb
FROM TAB p1
LEFT JOIN TAB p2 ON p1.product_id <> p2.product_id
GROUP BY p1.product_id, p2.product_id
ORDER BY nb DESC
Я не могу проверить, работает ли это.