如何计算我的关系 table 中重复项的数量

How to count number of duplicated items in my from relational table

我有 order 和一个 product table。顺序 table 如下所示:

uid  id  ref     order_id
---  --  ------  --------------
1    3   abc.    112
2    3   def     124

产品 table 看起来很喜欢这个

uid  id  sku     order_id
---  --  ------  --------------
1    6   rs-123  112
2    7   rs-123  112
2    8   rs-abc  124

所以我需要一个查询,从中获取所有具有多个相同 sku 的订单,如下所示:

order_id        sku          qty
--------        ---------    --------
112             rs-123       2

可能有 2 件、3 件或更多件具有相同 sku 的订单。我不想显示任何没有重复 skus

的订单

我试过这个:

SELECT sku, order_id,
COUNT(distinct sku) As Total
FROM products
GROUP BY order_id
HAVING (COUNT(distinct sku) > 1)

但它没有给出预期的结果。有什么想法吗?

你快到了。只需将 sku 添加到 GROUP BY 子句,并从计数中删除 distinct - 您也可以使用 COUNT(*):

SELECT sku, order_id, COUNT(*) As Total
FROM products
GROUP BY sku, order_id
HAVING COUNT(*) > 1