我有一张 table ,里面有从我们的购物网站订购的商品。每行都有一个商品编号和相关的购物车编号。因此,每个购物车编号可以有一个或多个与其关联的商品编号。我们想要找出通常与给定商品一起订购的前 4-5 种商品。就像您在亚马逊等大型网站上看到的那样。我想知道是否可以运行一个查询来创建一个包含该数据的表。或者我必须进行编程(C# 等)。新表可能有 5 列。第一列是主要商品编号,然后是另外 4 列最常订购的商品编号。如果这甚至可能的话,我想这是一个复杂的查询,所以我没有任何内容可以粘贴到这里来显示我已经开始的内容。
这是包含相关数据的表格片段。还需要其他信息吗?
这是一个 SQL Fiddle:http://sqlfiddle.com/#!9/b88417/1
最佳答案
我认为这可能有用,如果你可以制作一个 sql fiddle,它可能会更容易测试:
SELECT s1.itemRef,
s2.itemRef,
COUNT(s2.itemRef) AS count_items
FROM `cart_numbers` AS s1
JOIN `cart_numbers` AS s2 ON s2.cartNumber = s1.cartNumber
WHERE s2.itemref != s1.itemref
AND s1.cartNumber = 129009
GROUP BY s2.itemRef
ORDER BY COUNT(s2.itemRef) DESC
LIMIT 5
更新了查询,这将检索最多 5 件经常与购物车中的产品一起购买的产品
关于c# - 将一个表中的总计汇总到一个新表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36359459/