Пары категорий по числу покупателей
SQL, по которому посчитано
WITH base AS (
SELECT DISTINCT customer_id, category
FROM deals
WHERE status = 'Выиграна'
AND date >= (SELECT date_trunc('month', max(date)) FROM deals) - INTERVAL '11 months'
)
SELECT
a.category || ' + ' || b.category AS pair,
count(DISTINCT a.customer_id) AS customers
FROM base a
JOIN base b
ON a.customer_id = b.customer_id
AND a.category < b.category
GROUP BY 1
HAVING count(DISTINCT a.customer_id) >= 2
ORDER BY customers DESC
LIMIT 15