【发布时间】:2012-10-08 00:57:42
【问题描述】:
我有一个表,其中唯一记录由复合键表示,例如 (COL_A, COL_B)。
我已使用以下查询检查并确认我的表中有重复的行:
select COL_A, COL_B, COUNT(*)
from MY_TABLE
group by COL_A, COL_B
having count(*) > 1
order by count(*) desc
现在,我想删除所有重复记录,但只保留一条。
有人可以说明如何用 2 列实现这一目标吗?
编辑:
假设表只有COL_A和COL_B
【问题讨论】:
-
其余列是否相同?您如何决定要保留哪些?
-
@FionaT,在这种情况下,我不在乎我保留哪一个,只要我保留一个。这是因为它们都具有相同的 (COL_A, COL_B) 对。为简单起见,只有 COL_A 和 COL_B。
-
如果您没有其他字段(希望是关键字段),那么您的删除语句将删除所有记录。您必须有另一个字段来区分记录。
-
stackoverflow.com/questions/3317433/… 来吧,我所做的只是搜索 TSQL 删除重复记录。
标签: tsql duplicates sybase duplicate-removal