【问题标题】:How to count how many times that each pair of item has same order id in mySQL如何计算每对商品在mySQL中具有相同订单ID的次数
【发布时间】:2015-11-02 01:43:52
【问题描述】:

我想计算每对 SKU 一起订购了多少次(具有相同的 orderid)
我有一个 order 客户表,其中包含 2 列 ORDERIDSKUID
举个例子

ORDERID SKUID  
1       1  
1       2  
1       3  
2       1  
2       2  
2       4  
3       1  
3       4

我想要一个结果表

SKU1 SKU2  COUNT  
1    2     2  
1    3     1  
1    4     2  
2    3     1  
2    4     1  
3    4     0

谢谢

【问题讨论】:

  • 订单 1 有三个 SKU,是否要为每个匹配返回一列?
  • 你如何在这里定义一个pair
  • 我们在谈论多少个 sku?
  • 我有近 400 个 SKU,我想退回每一对。我的目标是我想检测每对 SKU 一起订购了多少次。比如我有 SKU A B 和 C,我的对应该是 AB、AC、BC。对不起我糟糕的英语,但我需要帮助。谢谢你

标签: mysql sql


【解决方案1】:

您可以通过自联接和聚合来做到这一点:

select o1.sku, o2.sku, count(distinct o1.orderid) as numorders
from orders o1 join
     orders o2
     on o1.orderid = o2.orderid and o1.sku < o2.sku;

如果您知道每个订单中的 sku 是唯一的,那么您可以使用 count(*) 而不是 count(distinct)

【讨论】:

    猜你喜欢
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 2019-05-06
    相关资源
    最近更新 更多