统计所有销售单中同时出现次数最多的商品
数据量150万条,样表如下:
销售单号 商品
20190101 A
20190101 B
20190101 C
20190102 A
20190102 C
20190103 C
20190103 D
我写了一段SQL,数据量少还可以,但速度也很慢,数据量上万直接卡死,求大神指点
SELECT y.商品编码1, y.商品编码2, COUNT(DISTINCT y1.销售单号) as js
FROM(
SELECT A.商品编码 as 商品编码1, B.商品编码 as 商品编码2
FROM (SELECT DISTINCT 商品编码 FROM 销售表) A,
(SELECT DISTINCT 商品编码 FROM 销售表) B
WHERE A.商品编码 < B.商品编码
) y INNER JOIN 销售表 y1 ON y1.商品编码 = y.商品编码1
WHERE E销售表ISTS(SELECT * FROM 销售表 y2 WHERE y2.销售单号 = y1.销售单号 AND y2.商品编码 = y.商品编码2)
GROUP BY y.商品编码1, y.商品编码2;