App*_*e12 1 sql self-join aggregation
我想找到更频繁订购的skuid对,然后查看这些对.我的SKU表有2列:skuid和orderid.例如:
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次.
提前致谢.
假设这(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的每个独特组合.那么这只是计算一切的问题