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

时间:2015-11-01 23:48:08

标签: sql aggregation self-join

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

orderid | skuid
--------|---------
1       | a
1       | b
1       | c
3       | a
3       | b   
3       | d   
3       | c   
5       | a   
5       | b

所以,在这种情况下,它将是: skuid(a,b)对出现3次,(a,c),(b,c)对出现2次。

提前致谢。

1 个答案:

答案 0 :(得分: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;

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