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

App*_*e12 1 sql self-join aggregation

我想找到更频繁订购的skuid对,然后查看这些对.我的SKU表有2列:skuidorderid.例如:

orderid | skuid
--------|---------
1       | a
1       | b
1       | c
3       | a
3       | b   
3       | d   
3       | c   
5       | a   
5       | b
Run Code Online (Sandbox Code Playgroud)

因此,在这种情况下,它将是:skuid(a,b)对出现3次,(a,c),(b,c)对出现2次.

提前致谢.

Bac*_*its 5

假设这(orderid, skuid)是唯一的:

SELECT t1.skuid
    ,t2.skuid
    ,COUNT(*) "count"
FROM UnnamedTable t1
INNER JOIN UnnamedTable t2
    ON  t1.orderid = t2.orderid
    AND t1.skuid   < t2.skuid
GROUP BY t1.skuid
    ,t2.skuid;
Run Code Online (Sandbox Code Playgroud)

连接条件应该为您提供两个skuids的每个独特组合.那么这只是计算一切的问题