【发布时间】:2018-03-11 11:18:10
【问题描述】:
我有一张产品表。这些产品具有产品 ID。产品 ID 可以由产品共享。它们由版本 ID 区分。例如,bike 的 id 为 1。有不同种类的自行车共享 p_id 为 1 但 v_id 为 1-15。表中有很多重复项,我想找到它们。我做了一个查询,找到产品的重复项。所以我可以看到产品的版本数,但有些产品被插入了两次。我写了一个查询来查看产品的版本计数,但现在我想查看所有重复项。有一列称为产品值(描述),如果它是重复的,它是指示符。
例子
productKey productValue cout
16293 Bike 2
16292 Bike 2
16291 Bike 2
16290 Pads 2
16289 Pads 2
16288 Helmet 3
16286 Shoe 2
从这里您可以看到自行车和护垫出现了 3 次,但头盔和鞋只出现了一次。我想编辑我的重复查询(或添加到其中),这样我就可以获得多次显示的项目(又名头盔和鞋子不会出现)第三列是版本,但可以忽略.
查询
SELECT productKey, productValue, COUNT(*) as cout
FROM [Store].[dbo].[products]
GROUP BY productKey, productValue
HAVING COUNT(*) > 1
ORDER BY productKey DESC
想要的结果,类似这样的
productKey productValue cout
16293 Bike 2
16292 Bike 2
16291 Bike 2
16290 Pads 2
16289 Pads 2
【问题讨论】:
-
发布预期结果
-
cout 将是版本
-
你写的查询似乎是正确的......问题是什么??
-
@Rams,它灌输了所有的产品。由于版本的原因,无论如何都会有重复的键。所以我写的查询找到了它们。它对 3 辆自行车之类的实际复制品没有任何作用。
-
您正在尝试查询产品密钥及其版本的重复项,然后计算它们的数量?
标签: sql sql-server duplicates