mysql return 人具有相似的购买和 desc 订单(按相似商品的数量计算)

mysql return people with similar purchase and desc order by count of similar items

客户table

id name
1 a
2 b
3 c
4 d

购买table

product_id customer_id
x 1
y 1
x 4
y 4
x 3
z 2

客户table有客户数据,采购table有订单数据。 现在开始质疑,我想要购买类似商品的客户 ID 按类似商品的数量订购 例如: 如果我想要像客户 'a' 这样购买过类似商品的客户 查询应该 return

customer_id similar items count
4 2
3 1

'a' 买了 x,y d' 买了 x,y, c' 买了 x

所以 d 和 c 应该return按相似项目计数 (desc) 排序

我不擅长更大的 sql 查询,所以我需要问这个。

提前致谢

SELECT t1.customer_id, t2.customer_id, COUNT(*) cnt
FROM purchase t1
JOIN purchase t2 ON t1.product_id = t2.product_id
                AND t1.customer_id < t2.customer_id
GROUP BY t1.customer_id, t2.customer_id;

将 return 客户配对并为他们提供相似产品的数量。