如何计算我的关系 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
我有 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