我一直在尝试编写脚本来查找重复记录。 然而,这将要求其中一个字段相同而另一个字段不同。我在SELECT中使用了以下2行。
ROW_NUMBER () OVER (PARTITION BY col_1 ORDER BY col_2) AS 'ROWNUMBER',
ROW_NUMBER () OVER (PARTITION BY col_2 ORDER BY col_1) AS 'ROWNUMBER2',
一旦使用了我,然后从TEMP表中选择我的结果,其中两列都是> 1.现在这使得我的结果在一个环境中是正确的,但是当在另一个环境中运行相同的脚本时(周末备份),我的结果是不同的。
有人可以向我解释为什么会发生这种情况吗?
非常感谢提前。
答案 0 :(得分:1)
你为什么使用row_number?这根本不是必需的,你应该使用group by:
SELECT col_1,col_2 from YourTable
group by col_1,col_2 having count(*) > 1
此查询将返回所有重复的行
编辑:如果您有第3列,根据它确定谁是副本,您应该这样做:
SELECT col_3 from yourTable
group by col_3 from yourTable having count(*) > 1