如何计算每对项目在mySQL中具有相同订单ID的次数

时间:2014-06-23 04:34:34

标签: mysql sql

我想要计算每对SKU一起订购的次数(具有相同的orderid)
我有一个订单客户表,其中包含2列 ORDERID SKUID
例如

ORDERID SKUID  
1       1  
1       2  
1       3  
2       1  
2       2  
2       4  
3       1  
3       4

我想要一个结果表

SKU1 SKU2  COUNT  
1    2     2  
1    3     1  
1    4     2  
2    3     1  
2    4     1  
3    4     0

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用自联接和聚合执行此操作:

select o1.sku, o2.sku, count(distinct o1.orderid) as numorders
from orders o1 join
     orders o2
     on o1.orderid = o2.orderid and o1.sku < o2.sku;

如果您知道每个订单中的skus都是唯一的,那么您可以使用count(*)代替count(distinct)